Я чувствую, что это будет простой ответ, вращающийся вокруг 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, чтобы размер заголовка изменился так же, как и ячейки.