今天碰到一个问题,就是发现在一个界面,隐藏导航控制器之后,TableView添加进控制器的View后,会有一个20的下滑,本来不确定时状态栏的高度;又在iPhoneX上运行了一下,发现下滑44,于是确定了.但是为什么会有这么个下滑呢.
控制器上的懒加载
#pragma mark ==================== 懒加载 ====================
- (MLPersonalCenterHeaderView *)headerView
{
if (!_headerView)
{
_headerView = [[MLPersonalCenterHeaderView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT * 0.2)];
_headerView.delegate = self;
}
return _headerView;
}
- (MLPersonalCenterView *)personalCenterView
{
if (!_personalCenterView)
{
_personalCenterView = [[MLPersonalCenterView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT) style:UITableViewStylePlain];
_personalCenterView.toolDelegate = self;
}
return _personalCenterView;
}
//TableView中的自定义
- (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style
{
if (self = [super initWithFrame:frame style:style])
{
self.dataSource = self;
self.delegate = self;
self.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);
self.tableHeaderView = nil;
self.tableFooterView = nil;
//设置行高
self.rowHeight = 44;
//取消自适应
self.estimatedRowHeight = 0;
self.estimatedSectionHeaderHeight = 0;
self.estimatedSectionFooterHeight = 0;
self.backgroundColor = [UIColor clearColor];
self.contentInset = UIEdgeInsetsMake(SCREEN_HEIGHT * 0.2, 0, 0, 0);
//初始化数据
_imageAry = @[@[@"钱包", @"临时工", @"预约", @"商品", @"收藏"], @[@"设置"]];
_titleAry = @[@[@"钱包", @"临时工", @"预约", @"商品", @"收藏"], @[@"设置"]];
}
return self;
}
这样就实现了一个效果
Simulator Screen Shot - iPhone X - 2017-11-27 at 11.44.24.png
最后发现,是因为:如果TableView.frame = CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)
,如果同时隐藏了导航条,那么tableView中cell的会让出状态栏的高度.就是说,如果第一个cell的frame是CGRectMake(0, 20, SCREEN_WIDTH, 44)
,而不是CGRectMake(0, 0, SCREEN_WIDTH, 44)
.就酱...
网友评论