【发布时间】:2014-05-07 23:01:40
【问题描述】:
更改屏幕方向时,我无法正确调整 uitableview 的大小。我可以使一个方向正常工作,但不能同时进行。 我尝试了 2 种不同的方法:1)在 tableview 上使用 autoresizingMask 和 2)使用 layoutSubviews 方法,以下是每种方法的结果:
1) 如果我使用自动调整大小几乎可以工作
self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin |UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin;
它在纵向时正确显示,然后我移动到横向时它也正确显示,但不是一直到屏幕末尾。在横向中,我在左侧和右侧看到一个空间。 所以,我想让我们将 UIViewAutoresizingFlexibleWidth 添加到上面的代码行中。它确实使 uitableviewcell 横向扩展到全屏,但是当我更改方向时,它不会在屏幕上保持相同的单元格,有时它会在屏幕中间显示一个单元格的一半和另一个单元格的一半。
2) 使用自动布局。使用此代码时,我得到与上述相同的行为:
-(void)layoutSubviews {
[super layoutSubviews];
onLoadSize=self.contentView.bounds.size;
self.myTableView.frame = CGRectMake(0, 0, onLoadSize.width, onLoadSize.height);
self.selectedBackgroundView.frame = self.myTableView.frame;
}
如果我为方向添加一个 if 语句测试,那么它在特定方向上工作正常,但在另一个方向上不行。如果我测试两个方向,我会得到与上述相同的行为。
非常欢迎任何帮助。
谢谢!
【问题讨论】:
标签: uitableview orientation screen-orientation autoresize