IOS之UITableView的header顯示問題
阿新 • • 發佈:2019-01-31
最近在攻克新專案,發現一個不一樣的地方,覺得也許是apple的小bug吧,不確定呢。
情景
使用UITableView展示列表元素資訊,使用grouped方式,設定section的header,奇怪的是不顯示section=0的時候的header。
發現
我是通過xib配置的UITableView,在tableview的section height中修改了header的引數為30,footer為1
而後,程式碼為
//setion數量
static const int VCInfoSectionCount = 5;
//使用者賬戶資訊
static const int VCUserInfoSection = 0 ;
//微信資訊
static const int VCWeiXinInfoSection = 1;
//錢包資訊
static const int VCWalletInfoSection = 2;
//邀請資訊
static const int VCInviteInfoSection = 3;
//設定資訊
static const int VCSettingInfoSection = 4;
...
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 5.0f, tableView.width, 20.0f)];
if (section == 0) {
NSLog(@"出現section = 0");
}
if (section == VCUserInfoSection) {
titleLabel.text = @"賬號資訊";
}else if (section == VCWeiXinInfoSection){
titleLabel.text = @"微信資訊";
}else if (section == VCWalletInfoSection){
titleLabel.text = @"錢包資訊";
}else if (section == VCInviteInfoSection){
titleLabel.text = @"邀請資訊";
}else if (section == VCSettingInfoSection){
titleLabel.text = @"基本設定";
}
titleLabel.textColor = [UIColor blueColor];
titleLabel.backgroundColor = [UIColor orangeColor];
return titleLabel;
}
發現,顯示效果,頂部沒有出現預計中的賬號資訊header,擦,奇怪了,日誌不輸出出現section = 0。
而後,我又增加了程式碼
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 30.0f;
}
這時候,日誌輸出section = 0,並且顯示出賬號資訊header了。
照理說,我xib中已經設定了header的height了啊,而且其他section的header顯示出來了,但是就是第一個不顯示出來,邪門中。