UITableView莫名其妙多了一块空白区域

来源:互联网 发布:淘宝玻璃砖 编辑:程序博客网 时间:2024/04/28 11:44

UITableView多了一块空白区域

大家都知道UITableView是继承自UIScrollView。我们一般很少去设置tableview的contentSize属性,tableview 的contentSize会走tableview 的代理方法动态计算。

有种特殊情况下会导致UITableView多了一块空白区域:项目中用代码去实例化UITableView的时候,如果要设置tableView 的header 的话,请先设置tableView的代理,再设置tableview的header。如果设置header在设置代理之前。就会出现tableview 多了一块空区域。这是一种特殊的情况,很少有人会碰到。

    UITableView *tableView = [[UITableView alloc] initWithFrame:self.view.bounds];    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, 50)];    headerView.backgroundColor = [UIColor redColor];    tableView.tableHeaderView = headerView;    tableView.delegate = self;    tableView.dataSource = self;    [self.view addSubview:tableView];



原因是:设置tableview 的header或者footer的时候 tableview会去计算自身contentSize。假设为H1, 会发现H1比实际的header的高度会高一些。这时候再去设置tableview的代理。当tableview走代理方法去计算contentSize 的时候就会在H1的基础上去计算。结果就会导致tableView的contentSize偏高,滑动的底部就会出现空白区域。

1 0
原创粉丝点击