我創建了一個帶有UIView的自定義XIB文件,我想在UITableView
中將其顯示爲部分標題的視圖。我正確實現所需的委託方法,作爲當然:從XIB加載的UITableView Sectionheader有時顯示不正確
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:
(NSInteger)section
{
if (tableView == self.messageTableView) {
TableViewHeaderView *header = [[[NSBundle mainBundle]
loadNibNamed:@"TableViewHeaderView" owner:self options:nil] lastObject];
[header.titleLabel setText:@"A String"];
[header.addressLabel setText:@"Another String"];
[header sizeToFit]; //I tried it with and without this line,
// does not seem to help
return header;
}
return nil;
}
由此,TableViewHeaderView
類是UIView
一個子類。
一切似乎工作得很好,我其實也在一些其他項目中使用這種方法,一切似乎都很好。不過,我遇到了一個相當奇怪和隨機的錯誤:運行應用程序並玩弄Tableview的數據,有些Sectionheader-Views有時顯示不正確,如下面的屏幕。由於我在這個論壇的新帳戶,我無法直接將圖片粘貼到這篇文章中。但是你可以使用,而不是鏈接(抱歉的是):
http://i.stack.imgur.com/JSeVz.png
的UITableView
在這個例子中八個部分。正如你可以清楚地看到sectionheader-views「Sending 3,4,5」完全錯位。他們堅持自己的位置,並在滾動tableview時一起移動。但是,當您向下滾動tableview時,它們會在正確的位置再次出現。順便說一句:我沒有在這個項目中使用AutoLayout,這個視圖有一個正確的高度,對應於heightForHeaderInSection:
委託方法,以及與底層tableview本身相同的寬度。該HeaderView的自動調整大小以及潛在的UITableView設置爲:
http://i.stack.imgur.com/Ms0ZC.png
重裝tableview中也沒有幫助。
有沒有人有一個想法那裏有什麼問題?我沒有絲毫的線索。或者,這種使用自定義視圖的方法有點陳舊嗎?
感謝您的幫助!
我會嘗試在該委託方法中放置斷點並檢查該標題視圖的框架。 –
好吧,我會試一試,但正如前面提到的,錯誤發生得非常隨機。可能會有一點點廣泛 – croX