【发布时间】:2011-12-12 03:23:19
【问题描述】:
我觉得这将是一个围绕 AutoResizingMasks 的简单答案,但我似乎无法围绕这个主题。
我有一个 iPad 应用程序,它并排显示 2 个 UITableView。当我从纵向旋转到横向并返回时,UITableView 中的单元格会在旋转发生时完美地即时调整大小。我正在使用 UITableViewCellStyleSubtitle UITableViewCells(暂时没有子类化),并且我在 IB 中设置了 UITableView 以锚定到顶部、左侧和底部边缘(对于左侧 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 属性,以便标题将像单元格一样调整大小。
【问题讨论】:
-
从您的问题中我不清楚:是标题的宽度没有随表格变化的问题,您希望它们的高度发生变化,或者发生的变化没有随着桌子的旋转被动画化?
-
我已经很久没看过这个了,但是一看到我就立刻跳出来了。我猜我的问题与灵活的宽度和灵活的左右边距有关。谁知道在这种情况下如何预测水平调整大小的行为?我敢打赌,将 AutoResizingMask 设置为灵活的宽度就是答案。不过,正如我在下面所说的,我再次转向了一个完全不同的解决方案。
标签: ios uitableview header resize mask