我试图了解我在使用 iOS 通用应用程序时遇到的问题。我有一个 UIScrollView,我希望它的页面占据设备的整个尺寸并在旋转时自行调整。
在我的viewDidLoad方法中,我正在测试:
NSArray *colors = [NSArray arrayWithObjects:[UIColor orangeColor], [UIColor cyanColor], [UIColor redColor], [UIColor greenColor], [UIColor blueColor], nil];
for (int i = 0; i < colors.count; i++) {
CGRect frame;
frame.origin.x = _scrollView.bounds.size.width * i;
frame.origin.y = 0;
frame.size = _scrollView.bounds.size;
UIView *subview = [[UIView alloc] initWithFrame:frame];
subview.backgroundColor = [colors objectAtIndex:i];
[_scrollView addSubview:subview];
}
_scrollView.contentSize = CGSizeMake(_scrollView.bounds.size.width * colors.count, _scrollView.bounds.size.height);
然后我在didRotateFromInterfaceOrientation方法中添加:
_scrollView.contentSize = CGSizeMake(_scrollView.bounds.size.width * colors.count, _scrollView.bounds.size.height);
for (int i= 0; i< colors.count; i++)
{
CGRect frame;
frame.origin.x = _scrollView.bounds.size.width * i;
frame.origin.y = 0;
frame.size = _scrollView.bounds.size;
UIView *subview= [[_scrollView subviews] objectAtIndex:i];
subview.frame= frame;
}
这似乎可行,但我似乎在设备旋转时在主视图上有一些剪辑。
这是旋转时发生的屏幕截图:
我以为发生这种情况是因为我在旋转后更改了大小,但我尝试在willRotateToInterfaceOrientation方法中处理它,但它给出了错误的结果......
- 我处理不正确吗?
- 什么是正确的方法?
蒂亚!S。
我处理不正确吗?