Я создал пользовательский XIB-файл с UIView, который я хотел бы отобразить в виде UITableView
в виде заголовка в разделе. Я правильно реализовать необходимые методы делегата, а конечно:UITableView Sectionheader, загруженный из XIB, иногда отображается неправильно
- (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, некоторые разделы Headheader-Views иногда отображаются неправильно, как на следующем экране. Из-за моей новой учетной записи на этом форуме я не могу вставить картинку прямо в этот пост. Но вы можете использовать ссылку вместо (извините за это):
http://i.stack.imgur.com/JSeVz.png
UITableView
имеет восемь разделов в этом примере. Поскольку вы можете четко видеть, что разделы заголовка «Отправка 3,4,5» полностью утеряны. Они застряли на своем месте и двигаются вместе при прокрутке стола. Однако при прокрутке вниз по таблице они появятся во второй раз в правильном месте.
К слову: я не использую AutoLayout в этом проекте, представление имеет правильную высоту, соответствующую методу делегата , и такую же ширину, что и базовое табличное представление. Autosizing из HeaderView, а также основной UITableView установлен в:
http://i.stack.imgur.com/Ms0ZC.png
Перезагрузка TableView не помогает.
У кого-нибудь есть идея, что там не так? У меня нет ни малейшего понятия. Или это подход использования пользовательских представлений вроде старых?
Благодарим за помощь!
Я попытался бы установить точку останова в этом методе делегата и проверить фрейм этого заголовка. –
Хорошо, я попробую, но, как уже упоминалось, ошибка происходит довольно случайным образом. Возможно немного – croX