错误原因:

默认情况下self.extendedLayoutIncludesOpaqueBars = NO 扩展布局不包含导航栏,默认情况下self.automaticallyAdjustsScrollViewInsets = YES 自动计算滚动视图的内容边距

自定义的navigationbar,隐藏掉系统的navigationbar,SafeAreaInsets值为(20,0,0,0)

系统的navigationbar,隐藏掉系统的navigationbar,SafeAreaInsets值为(64,0,0,0)


解决办法:

self.extendedLayoutIncludesOpaqueBars = YES;

if (@available(iOS 11.0, *)) {

        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

} else {

        self.automaticallyAdjustsScrollViewInsets = NO;

}


// 设置tableView的内边距(能够显示出导航栏和tabBar下覆盖的内容)

_tableView.contentInset = UIEdgeInsetsMake(64, 0, 49, 0);

// 设置内容指示器(滚动条)的内边距

_tableView.scrollIndicatorInsets = _tableView.contentInset;


Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐