我有一个包含3页UIScrollView的应用程序。当一个过度滚动到下一个元素时,它会交换页面,每个页面都是一个自己的UIViewController(并且每个页面都包含UILabel和UITextFields)。每个页面的宽度设置等于当前设备的宽度。
这在iOS 8上完美运行,但在iOS 7上滚动视图的尺寸太小了33%,而每个view.frame.orgin.x都是33%太小,因此视图重叠。然而,每个页面的宽度是正确的。
我的问题是,为什么这个偏移了33%?为什么这在iOS 8上完美运行,但在iOS 7上却没有?
scrollview的原始代码:
scrollview.contentSize = CGSizeMake((screenRect.size.width * 3), scrollview.frame.size.height);
实际运作的Scrollview代码:
CGRect screenRect = [[UIScreen mainScreen] bounds];
if([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0)
{
scrollview.contentSize = CGSizeMake((screenRect.size.width * 3) * 1.334, scrollview.frame.size.height);
}
else
{
scrollview.contentSize = CGSizeMake((screenRect.size.width * 3), scrollview.frame.size.height);
}
每个页面的相关代码:
CGRect frame = [[UIScreen mainScreen] bounds];
if([[[UIDevice currentDevice] systemVersion] floatValue] < 8.0)
{
frame.origin.x = (frame.size.width * page) * 1.334;
}
else
{
frame.origin.x = (frame.size.width * page);
}
frame.orgin.y = 0;
答案 0 :(得分:0)
您似乎在操作系统小于8.0时将内容大小增加了30%。这导致重叠。到底有什么不清楚?
答案 1 :(得分:0)
我的问题是,当涉及到[[UIScreen mainScreen]界限]时,iOS 8与iOS 7不同。
我在这里找到了我的问题的答案:
Is [UIScreen mainScreen].bounds.size becoming orientation-dependent in iOS8?