天天看点

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;
    }
}      

参考

有趣的验证码输入框

继续阅读