我有一个以编程方式创建的 UIScrollView,我将它创建为它后面的 UIView 的大小。在viewDidAppear
我基本上有:
UIScrollView *scrollView= [[UIScrollView alloc] initWithFrame:mainView.bounds];
//mainView being the UIView behind
当设备旋转时,背景中的 UIView 自然会改变边界,变宽变短(尽管 x,y ≠ y,x)。
在我的-(void)didRotateFromInterfaceOrientation:
我放了`NSLog(@"%@", NSStringFromCGRect(mainView.bounds));,并且mainView的边界已经切换,但是如果我这样做:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
scrollView.bounds = mainView.bounds;
NSLog(@"%@", NSStringFromCGRect(scrollView.bounds));
NSLog(@"%@", NSStringFromCGRect(mainView.bounds));
}
它仍然显示错误.. NSLog 为两个视图记录了相同的边界,但在屏幕上 mainView 是正确的,并且 scrollView 似乎翻转了,好像 (0,0) 在主视图之外,并且尺寸错了..我是否必须重绘一些东西,还是我把所有这些都放在错误的地方?或者不是.bounds
使用正确的变量?
编辑
我意识到更新框架与重新启动框架不同initWithFrame:
,但我希望当前内容保持不变,以相同的方式..