1.问题描述:今天写一个tableView的时候偶然发现tableView的顶部留有空白,也就是cell不是在tableView的顶部显示。如下图:
![IOS:tableView顶部留有空白的学习 IOS:tableView顶部留有空白的学习](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFV4TWpJeE1UWXhNVEl6TkRRM1AzZGhkR1Z5YldGeWF5OHlMM1JsZUhRdllVaFNNR05FYjNaTU1rcHpZakpqZFZrelRtdGlhVFYxV2xoUmRpOW1iMjUwTHpWaE5rdzFUREpVTDJadmJuUnphWHBsTHpRd01DOW1hV3hzTDBrd1NrSlJhMFpEVFVFOVBTOWthWE56YjJ4MlpTODNNQzluY21GMmFYUjVMME5sYm5SbGNnPT0%3D.jpg?w=700&webp=1)
上图是头部留有空白的情况(红色是tableView,灰色是cell)
![IOS:tableView顶部留有空白的学习 IOS:tableView顶部留有空白的学习](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFV4TWpJeE1UWXhNakV6TVRjeFAzZGhkR1Z5YldGeWF5OHlMM1JsZUhRdllVaFNNR05FYjNaTU1rcHpZakpqZFZrelRtdGlhVFYxV2xoUmRpOW1iMjUwTHpWaE5rdzFUREpVTDJadmJuUnphWHBsTHpRd01DOW1hV3hzTDBrd1NrSlJhMFpEVFVFOVBTOWthWE56YjJ4MlpTODNNQzluY21GMmFYUjVMME5sYm5SbGNnPT0%3D.jpg?w=700&webp=1)
上图是正常显示的,也就是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顶部留有空白的学习 IOS:tableView顶部留有空白的学习](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFV4TWpJeE1UWXhPVEkyTVRrNVAzZGhkR1Z5YldGeWF5OHlMM1JsZUhRdllVaFNNR05FYjNaTU1rcHpZakpqZFZrelRtdGlhVFYxV2xoUmRpOW1iMjUwTHpWaE5rdzFUREpVTDJadmJuUnphWHBsTHpRd01DOW1hV3hzTDBrd1NrSlJhMFpEVFVFOVBTOWthWE56YjJ4MlpTODNNQzluY21GMmFYUjVMME5sYm5SbGNnPT0%3D.jpg?w=700&webp=1)
代码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顶部留有空白的学习 IOS:tableView顶部留有空白的学习](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9nby9hSFIwY0RvdkwybHRaeTVpYkc5bkxtTnpaRzR1Ym1WMEx6SXdNVFV4TWpJeE1UWXlNekF6T0RNelAzZGhkR1Z5YldGeWF5OHlMM1JsZUhRdllVaFNNR05FYjNaTU1rcHpZakpqZFZrelRtdGlhVFYxV2xoUmRpOW1iMjUwTHpWaE5rdzFUREpVTDJadmJuUnphWHBsTHpRd01DOW1hV3hzTDBrd1NrSlJhMFpEVFVFOVBTOWthWE56YjJ4MlpTODNNQzluY21GMmFYUjVMME5sYm5SbGNnPT0%3D.jpg?w=700&webp=1)
从上面的两段代码可以看出,其实tableView创建的时候是默认有顶部空白的!至于原因我想是为了方便程序员使用的时候要适配navigationBar。后来我又发现了一句代码
self.automaticallyAdjustsScrollViewInsets = NO;