IOS:tableView顶部留有空白的学习

时间:2022-11-18 00:12:51

1.问题描述:今天写一个tableView的时候偶然发现tableView的顶部留有空白,也就是cell不是在tableView的顶部显示。如下图:

IOS:tableView顶部留有空白的学习
上图是头部留有空白的情况(红色是tableView,灰色是cell)
IOS:tableView顶部留有空白的学习
上图是正常显示的,也就是cell是要贴紧tableView的顶部开始显示。

根据这种情况我又新建了一个tableView:


代码1:


 UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
tableView.delegate = self;
tableView.dataSource = self;

[self.view addSubview:tableView];

显示效果如下
IOS:tableView顶部留有空白的学习

代码2:


 UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 50, self.view.bounds.size.width, self.view.bounds.size.height)];
tableView.backgroundColor = [UIColor redColor];
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"];
tableView.delegate = self;
tableView.dataSource = self;

[self.view addSubview:tableView];

显示如下:

IOS:tableView顶部留有空白的学习



从上面的两段代码可以看出,其实tableView创建的时候是默认有顶部空白的!至于原因我想是为了方便程序员使用的时候要适配navigationBar。后来我又发现了一句代码
self.automaticallyAdjustsScrollViewInsets = NO;

查看代码后的解释:

automaticallyAdjustsScrollViewInsets用于设置ViewController是否自动调整他的scroll View insets。默认为YES,表示允许ViewController自动调整由于适用scroll View 而生成的各种navigation bar,status bar,tool bar和tab bar.也就是说在默认情况下ViewController会为用户自动调整ScrollView及其子类,已适用ViewController上面的各种Bar