UITableView 调整 Header 层级关系
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 层级关系相关推荐
- PPT使用技巧 二 调整PPT文字和图片的层级关系
调整PPT文字和图片的层级关系 选择图片或者文字等,右键"置于顶层"等可以调整层级关系
- Unity 之 UGUI 图片 和 粒子特效显示层级关系调整
Unity 之 UGUI 图片 和 粒子特效显示层级关系调整 通常我们使用UGUI时都是通过调整UI的先后顺序或者父物体的层级关系,可是当我使用到粒子特效和Image一起的时候发现光修改层级关系是达不 ...
- 百度地图在地图上添加多个点,并调整地图层级及中心点至合适位置大小
项目中有个输入关键字,把搜索结果在地图上标点的需求,需要将搜索到的结果标在地图中,如果有的点不在当前地图视野中,需要将地图移动到合适的中心点,并且调整到合适层级. 分享一下其中比较关键点的函数. /* ...
- 【游戏开发实战】Unity粒子在UI界面中的裁切、蒙版、层级问题的解决(ScrollView裁切、Mask蒙版、UI粒子层级关系)
文章目录 一.前言 二.最终效果 三.使用方法 1.引入插件dll 2.制作粒子特效 3.粒子材质球使用UIAdditive.shader 4.将粒子摆放在UI节点下 5.挂UIParticle组件 ...
- HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次)
HTML中DOM对象的属性和方法的层级关系是怎样的?(目录即层次) 一.总结 一句话总结:目录就是测试题 1.document取得元素(get element)的方式有哪几种? 解答:四种,分别是id ...
- css - Position定位属性与层级关系
今天同事发现一个有意思的问题,关于position的层级关系的,他要不说我也没注意过 测试后果然有趣,有待深入研究: 1 <!DOCTYPE html> 2 <html> 3 ...
- android层级关系图,画出 View 的层级 3D 图和树形图来分析层级关系
HierarchyLayout 介绍 HierarchyLayout是一个自定义的ViewGroup工具,用于分析视图的层级关系,并画出层级树的结构图和可交互的3D 层级View: HiearchyL ...
- 第10章-定位、层级关系
一.定位 1.static 默认属性.块级元素→矩形框,行级元素→行框 2.fixed 类似于absolute,但包含块是视窗本身 3.relative 原本所占的空间仍保留 4.absolute 生 ...
- 详解html结构之间的各个关系,层级关系(以列表为例)
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>层级关 ...
最新文章
- 对于随机森林的通俗理解
- 最近在弄ionic3的时候遇到的一些问题(遇到就更新)
- 达梦数据库部署多实例
- Python 调试 PDB
- HTML页面的基本代码结构是什么?
- 去掉windows換行符^M
- 二十一天学通之cookie的路径和域
- mysql505复位密码_MySQL数据库复位根用户的密码_MySQL
- java写http接口,java如何写一个http接口?实例详解
- 物理学经济学java周易_来自核物理学家的“中医证明”和“经济学降维打击”...
- 微信云linux sdk,微信云控开发SDK使用教程--手机端推送好友列表通知服务端
- 台式计算机是32位还64位,电脑系统装64位还是32位系统好?考虑这些才能正确安装...
- 联发科正式发布Helio P23/P30 SoC:GPU、基带大升级
- bean的一种使用姿势
- MVC中方便的[Authorize],加上这特性,就可以加上登录验证
- web项目部署服务器上线
- 关于坐标系和投影的相关知识探讨
- 什么是云服务器 云服务器的特点优势及劣势
- 酒店智能门锁常见故障及解决办法
- 【逐梦旅程Windows游戏编程学习笔记 ①】基本GDI绘图
热门文章
- NumSharp v0.8.0 发布,C# 张量计算库
- JavaScript获取浏览器的显示区域大小信息
- Android的资源管理器的创建过程
- 程序清单3.3_bases.c程序_《C Primer Plus》P37
- 《MonkeyRunner原理剖析》第九章-MonkeyImage实现原理 - 概览
- css如何自动换行对于div,p等块级元素(转)
- EntityFramework用法探索(二)CodeFirst
- sysbench 性能测试
- 【Vegas原创】outlook发送时,报550 5.7.1 client does not have permissions to send as this sender解决方法...
- WebClient 请求 https 页面出错:未能创建 SSL/TLS 安全通道