印象深刻的bug:使用xib做为tableHeaderView,

2017-10-28  本文已影响18人  十一岁的加重

目前已经解决,过程相当诡异。之前用Xcode8.3.2是正常的,后面升级到Xcode9好像就不正常了。
结论:
iOS9之前需要在包一层view,然后设置高度时,不能直接

self.tableView.tableHeaderView.height = 1214.7;

你得类似这样设置height:

UIView *headerV = self.tableView.tableHeaderView;
CGRect *headerF = headerV.frame;
headerF.size.height = 1214.7;
headerF.size.width = kScreenW;
headerV.frame = headerF;
headerV.subviews[0].frame = headerF;
self.tableView.tableHeaderView = headerV;

iOS9以后呢,不用包这一层view了,在设置高度时,直接

self.tableView.tableHeaderView.height = 1214.7;

同时还得在viewDidLayoutSubvies里设置这个高度。

- (void)viewDidLayoutSubviews {
 [super viewDidLayoutSubvies];
/// 这里可以用个变量存这个高度,不过我们正确的做法就是在这个时机设置frame而非viewDidLoad方法中
self.tableView.tableHeaderView.height = 1214.7;
}

上一篇下一篇

猜你喜欢

热点阅读