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