我有一个UIViewController,纵向配有iPad xib。当我的iPad处于横向模式时,我将该视图控制器放入我的UISplitViewController的详细信息窗格中,它会自动调整大小以适合哪种方式。当纵向xib调整为横向时,需要更改UIScrollView contentSize
但是,当我在-viewDidLoad中配置我的视图时,视图的最终大小尚未处于横向/大小。
当我已经在横向加载UIViewController时,-didRotateFromInterfaceOrientation:方法和与它关联的其他方法不会被调用,所以何时何地能够正确设置滚动视图的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;
你能发布你设置内容大小的代码吗?它在viewDidLoad中吗? – atxe
是的,在viewDidLoad中我添加了代码。 –
旋转时,您的UIScrollView的内容大小真的在变化吗?内容是不是相同和相同的大小? – atxe