1. 程式人生 > >IOS之UITableView的header顯示問題

IOS之UITableView的header顯示問題

最近在攻克新專案,發現一個不一樣的地方,覺得也許是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顯示出來了,但是就是第一個不顯示出來,邪門中。