Я чувствую, что это будет простой ответ, вращающийся вокруг AutoResizingMasks, но я не могу обернуться вокруг этой темы.
У меня есть приложение для iPad, которое показывает 2 UITableViews рядом. Когда я поворачиваюсь от Портрета к Пейзажу и обратно, ячейки в UITableView изменяют размер на лету, пока происходит вращение. Я использую UITableViewCellStyleSubtitle UITableViewCells (пока не разделены на подклассы), и я установил UITableView в IB, чтобы привязать верхний, левый и нижний края (для левого UITableView) и иметь гибкую ширину.
Я предоставляю свой собственный объект UIView для
- (UIView *)tableView:(UITableView *)tableView
viewForHeaderInSection:(NSInteger)section
Вот что я получил (названный как метод класса из другого класса):
+ (UIView *)headerForTableView:(UITableView *)tv
{
// The view to return
UIView *headerView = [[UIView alloc]
initWithFrame:CGRectMake(0, 0, [tv frame].size.width, someHeight)];
[headerView setAutoresizingMask:UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleRightMargin];
// Other layout logic... doesn't seem to be the culprit
// Return the HeaderView
return headerView;
}
Итак, в любой ориентации все загружается так, как я хочу. После поворота, если я вручную вызову reloadData или подожду, пока мое приложение не запустит его, или прокрутит UITableView, заголовочные окна изменят размер и покажут себя правильно. Что я не могу понять, так это как правильно установить свойство AutoResizeMask, чтобы заголовок изменял размеры точно так же, как и ячейки.