

0代码隐藏GroupedTableView上边多余的间隔
source link: https://blog.sunnyxx.com/2015/04/15/ios-hide-grouped-tableview-header/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

0代码隐藏GroupedTableView上边多余的间隔
实现诸如支付宝的 “探索” 页面时,最简单的方案是在 Storyboard 中来一个静态 Grouped UITableViewController,把各个 Cell 中的元素摆好就行了
不过会有下面的问题,第一个 Section 距离屏幕顶端有间隔
一行代码搞定
研究发现,这里其实是一个被 UITableView 默认填充的 HeaderView。而且,当试图将它的高度设置为 0 时,完全不起效果。但我们用下面的代码创建一个高度特别小的 HeaderView 时,上面的边距就不见了:
CGFLOAT_MIN
这个宏表示 CGFloat 能代表的最接近 0 的浮点数,64 位下大概是 0.00(300左右个)0225 这个样子
这样写单纯的为了避免一个魔法数字,这里用 0.1
效果是一样的,后面再讲。
在 Storyboard 中 0 代码搞定
没用 Storyboard 的同学使用上面的代码就 OK 了; 而在 Storyboard 中可以 0 代码搞定这个事:
首先,在第一个 Section 的上面拖进来一个空 UIView
然后选中这个 UIView 的 Runtime Attributes 栏,添加一个 frame
的 KeyPath
这样头部的间隔就乖乖的不见了:
刨根问底 UITableViewHeader 的猫腻
为什么刚才说 0.1 和 CGFLOAT_MIN 是等效的呢?经过研究,这个高度值的影响大概是这样的:
- 若传入的 height == 0,则 height 被设置成默认值
- 若 height 小于屏幕半像素对应的高度,这个 header 不在另一个像素渲染
半像素也就是 1.0 / scale / 2.0
,如在 @2x 屏上是 0.25
直观的感受下,假如这个 height 被设置成 0.5 的样子:
身患强迫症的我是绝对不能容忍导航栏下面的阴影线看上去宽了 0.5 像素的,Done。
Recommend
-
79
-
32
Go编程中循环调度任务的执行间隔我们通常采用 time.Sleep或time.After来实现。 写法1: go func(ctx context.Context) { for { select { case <-ctx.Done(): fmt.Println("Cancelled", time.Now())...
-
10
[ML Notes] SVM:软间隔 Author: nex3z 2021-03-14 Contents [
-
8
间隔记忆工具:Anki 我的 Evernote 约有 3000 条笔记,有3个大分类:医学、产品、编程。为了对抗遗忘,需要经常分享这些知识给其他人,也要隔...
-
5
Gavin 亲笔:Kusama 网络将进行 5 次拍卖,每次间隔 7 天PolkaWorld2021-05-18热度: 19383升级为statemine之后就开始拍卖!
-
17
Gavin Wood:Kusama 平行链插槽将进行 5 次拍卖,每次间隔 7 天_区块链资讯_链向财经Gavin Wood:Kusama 平行链插槽将进行 5 次拍卖,每次间隔 7 天来源:PolkaWorld撰文:Gavin Wood,波卡创始人...
-
6
Gavin亲笔:Kusama网络将进行5次拍卖,每次间隔7天 polkaworld 2021-05-18 14:56 摘要: Polkadot 的阶段上线即将进入另一...
-
9
欧科云链OKLink:比特币出块间隔达到18年以来最高水平 - 律动BlockBeats 律动 BlockBeats 消息,6 月 28 日,据欧科云链 OKLink 数据显示,由于近期网络哈希率持续下降,比特币的出块间隔时间大幅上升。6 月 27 日的出块间隔均值为 1198.18 秒,创下 18 年...
-
13
读完本文你将了解到: 在保证代码没有功能问题,完成业务开发之余,有追求的程序员还要追求代码的规范、可维护性。 今天,以“成为优秀的程序员”为目标的拭心将和大家一起精益求精,学习使用 Lint 优化我们的代码。 什么是 Lint
-
5
V2EX › Python 是否有针对为了兼容的多余代码的代码检查? Contextualist · 1 小时 10...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK