UITableView 的 Header如何嵌在第一个 Cell 下面
为什么要调整层级关系

还用问嘛,当然是产品经理拿着四十米大刀告诉你我就要这个效果。

橙色 View 为轮播滚动效果。

一眼看过去,简单,就是 tableView + 一个 headerView

思路

让 headerView 的子视图比 Header高一点,就可以超出 headerView 占位高度,达到在第一个 Cell 的底部,完成 UI 小姐姐的交叉效果。

一顿猛操作

   private func setupTableView() {tableView.tableHeaderView = tableViewHeader()tableView.rowHeight = UITableView.automaticDimensiontableView.delegate = selftableView.dataSource = selftableView.register(UINib(nibName: "Cell", bundle: nil), forCellReuseIdentifier: "Cell")self.view.addSubview(tableView)}private func tableViewHeader() -> UIView {header = UIView(frame: .init(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 200))let contentView = UIView(frame: .init(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 220))header.addSubview(contentView)contentView.backgroundColor = .orangereturn header}

一看效果真是虎

发现HeaderView遮挡了第一个 Cell,

说明 HeaderView 在 第一 Cell 之后渲染的,所以只要让 HeaderView 的层级调低,让它后渲染就可以完成了。

于是在setupTableView()中添加如下方法

private func setupTableView() {tableView.tableHeaderView = tableViewHeader()tableView.sendSubviewToBack(header) ...
}

运行之后发现还是被遮挡,没有效果, tableView 渲染时还是会在第一个 cell 的上面,猜测是不是 tableView 内部调整了的。

终极办法

在 UITableViewDelegate willDisplay cell代理方法中设置

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {if indexPath.row == 0 { // 在第一行情况下, 将header调整到最底层。tableView.sendSubviewToBack(header)}}

完美调整图层渲染,达成效果

UITableView 调整 Header 层级关系相关推荐

  1. PPT使用技巧 二 调整PPT文字和图片的层级关系

    调整PPT文字和图片的层级关系 选择图片或者文字等,右键"置于顶层"等可以调整层级关系

  2. Unity 之 UGUI 图片 和 粒子特效显示层级关系调整

    Unity 之 UGUI 图片 和 粒子特效显示层级关系调整 通常我们使用UGUI时都是通过调整UI的先后顺序或者父物体的层级关系,可是当我使用到粒子特效和Image一起的时候发现光修改层级关系是达不 ...

  3. 百度地图在地图上添加多个点,并调整地图层级及中心点至合适位置大小

    项目中有个输入关键字,把搜索结果在地图上标点的需求,需要将搜索到的结果标在地图中,如果有的点不在当前地图视野中,需要将地图移动到合适的中心点,并且调整到合适层级. 分享一下其中比较关键点的函数. /* ...

  4. 【游戏开发实战】Unity粒子在UI界面中的裁切、蒙版、层级问题的解决(ScrollView裁切、Mask蒙版、UI粒子层级关系)

    文章目录 一.前言 二.最终效果 三.使用方法 1.引入插件dll 2.制作粒子特效 3.粒子材质球使用UIAdditive.shader 4.将粒子摆放在UI节点下 5.挂UIParticle组件 ...

  5. HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次)

    HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次) 一.总结 一句话总结:目录就是测试题 1.document取得元素(get element)的方式有哪几种? 解答:四种,分别是id ...

  6. css - Position定位属性与层级关系

    今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: 1 <!DOCTYPE html> 2 <html> 3 ...

  7. android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系

    HierarchyLayout 介绍 HierarchyLayout是一个自定义的ViewGroup工具,用于分析视图的层级关系,并画出层级树的结构图和可交互的3D 层级View: HiearchyL ...

  8. 第10章-定位、层级关系

    一.定位 1.static 默认属性.块级元素→矩形框,行级元素→行框 2.fixed 类似于absolute,但包含块是视窗本身 3.relative 原本所占的空间仍保留 4.absolute 生 ...

  9. 详解html结构之间的各个关系,层级关系(以列表为例)

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>层级关 ...

最新文章

  1. 对于随机森林的通俗理解
  2. 最近在弄ionic3的时候遇到的一些问题(遇到就更新)
  3. 达梦数据库部署多实例
  4. Python 调试 PDB
  5. HTML页面的基本代码结构是什么?
  6. 去掉windows換行符^M
  7. 二十一天学通之cookie的路径和域
  8. mysql505复位密码_MySQL数据库复位根用户的密码_MySQL
  9. java写http接口,java如何写一个http接口?实例详解
  10. 物理学经济学java周易_来自核物理学家的“中医证明”和“经济学降维打击”...
  11. 微信云linux sdk,微信云控开发SDK使用教程--手机端推送好友列表通知服务端
  12. 台式计算机是32位还64位,电脑系统装64位还是32位系统好?考虑这些才能正确安装...
  13. 联发科正式发布Helio P23/P30 SoC:GPU、基带大升级
  14. bean的一种使用姿势
  15. MVC中方便的[Authorize],加上这特性,就可以加上登录验证
  16. web项目部署服务器上线
  17. 关于坐标系和投影的相关知识探讨
  18. 什么是云服务器 云服务器的特点优势及劣势
  19. 酒店智能门锁常见故障及解决办法
  20. 【逐梦旅程Windows游戏编程学习笔记 ①】基本GDI绘图

热门文章

  1. NumSharp v0.8.0 发布,C# 张量计算库
  2. JavaScript获取浏览器的显示区域大小信息
  3. Android的资源管理器的创建过程
  4. 程序清单3.3_bases.c程序_《C Primer Plus》P37
  5. 《MonkeyRunner原理剖析》第九章-MonkeyImage实现原理 - 概览
  6. css如何自动换行对于div,p等块级元素(转)
  7. EntityFramework用法探索(二)CodeFirst
  8. sysbench 性能测试
  9. 【Vegas原创】outlook发送时,报550 5.7.1 client does not have permissions to send as this sender解决方法...
  10. WebClient 请求 https 页面出错:未能创建 SSL/TLS 安全通道