在viewdidload中我有这段代码:
[methodPanes setContentSize:CGSizeMake(numberOfPages*methodPanes.frame.size.width, 100)];
方法窗格相对于self.view
的宽度设置。
问题是,如果我在iPad和NSLog methodPanes.frame.size.width
上加载横向格式的视图,我会得到 648 (这显然是错误的)。
然后我有一个按钮,当我点击它时,一旦显示视图,它会再次显示NS methodPanes.frame.size.width
。现在 924 (更喜欢它)。
我假设由于某种原因滚动视图加载为648宽,然后自动调整到视图宽度(设置为UIViewAutoresizingFlexibleWidth以在旋转ipad时正确地重新调整尺寸)。
我的问题是我的methodPanes scrollview内容的内容大小应该是numberOfPages x its frame width
,但在viewDidLoad中,它给我的methodPanes框架宽度错误,这意味着我的内容太小,意味着我的所有内容没有显示。
所以.....我该如何解决这个问题?是否有一个函数在所有UI组件加载并停止移动后运行?或者我可以对methodPanes进行“检查”以查看其宽度是否发生变化,然后相应地调整内容大小?
由于
答案 0 :(得分:4)
允许运行循环运行后获取宽度。到那时,视图尺寸将更新为方向。这通常就足够了:
- (void)adjustContentSize {
[methodPanes setContentSize:CGSizeMake(numberOfPages*methodPanes.frame.size.width, 100)];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self performSelector:@selector(adjustContentSize) withObject:nil afterDelay:0.0];
}