我有一个 UIViewController 和一个纵向的 iPad xib。当我的 iPad 处于横向并且我将该视图控制器放入我的 UISplitViewController 的详细信息窗格时,它会自动调整大小以适应这很棒。
但是,当我在 -viewDidLoad 中配置视图时,视图的最终大小还不是横向/大小。
-didRotateFromInterfaceOrientation: 方法和与之关联的其他方法在 UIViewController 已经加载到横向时不会被调用,所以我何时何地能够正确设置滚动视图的 contentSize 及其内容?
我只希望我的滚动视图垂直滚动,所以我想确保滚动视图中的内容视图在任何方向上都重新适合视图控制器的宽度。
无论我检查什么 .frame 或 .bounds,无论是在我的视图、滚动视图,还是我的 SplitViewController 的详细视图控制器上,都会向我显示我的实际尺寸是多少。在横向使用 UISplitViewController 时,左侧为 320px 宽,这意味着右侧不应超过 704px 宽,但每当我检查视图和滚动视图的框架和边界时,它们报告为 768px 宽这是不正确的。
我的滚动视图显然只有 704px 宽,因为我可以正确地看到滚动指示器。
我错过了什么?
这是我在 -viewDidLoad 中的代码...
CGSize textSize = [self.purchase.textDescription sizeWithFont:self.labelTextDescription.font constrainedToSize:allowedSize lineBreakMode:UILineBreakModeWordWrap];
CGRect textFrame = self.labelTextDescription.frame;
textFrame.size.height = textSize.height;
self.labelTextDescription.frame = textFrame;
CGRect contentFrame = self.contentView.frame;
contentFrame.size.height += textSize.height;
if (contentFrame.size.width > self.scrollView.frame.size.width) {
contentFrame.size.width = self.scrollView.frame.size.width;
}
self.contentView.frame = contentFrame;
[self.scrollView addSubview:self.contentView];
self.scrollView.contentSize = self.contentView.frame.size;