iOS UITableView 指定组头悬停位置

悬停位置

UITableView占满屏幕时
组头默认是在顶部悬停
在机型 iPhone X
会被顶部的刘海给挡住

这效果显然不能直视~
理想的效果是:
导航下方悬停

(导航是个自定义的视图
带有渐变效果)


contentInset

官方文档:
The custom distance that the content view is inset from the safe area or scroll view edges.

参考代码:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    CGFloat offsetY = scrollView.contentOffset.y;
    CGFloat tableHeaderViewHeight = CGRectGetHeight(self.tableView.tableHeaderView.bounds);
    // 差值 = 头视图高度 - 导航条高度 
    if (offsetY >= tableHeaderViewHeight - TopBarHeight) {
        // 顶部偏移距离:导航条高度
        self.tableView.contentInset = UIEdgeInsetsMake(TopBarHeight/*用你自己定义的宏*/, 0, 0, 0);
    } else {
        self.tableView.contentInset = UIEdgeInsetsZero;
    }
}

参考

https://www.jianshu.com/p/0fba49dd13c6


有趣的验证码输入框

https://github.com/xjh093/JHVerificationCodeView


发布了201 篇原创文章 · 获赞 220 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/xjh093/article/details/100745623