我们在应用程序商店中的iphone应用程序的当前版本只是延伸布局以填充iphone 6和6+。在xcode 7更新之后,应用程序就像在iphone 4上一样运行,顶部有黑条。我知道添加启动故事板可以解决这个问题。问题是我们的布局在6和6+上都没有出现问题。
显然,修改布局以适应这些屏幕尺寸是需要做的事情,但我们处在紧要关头,只需要尽快推出幕后功能更新推送给我们的用户。无论如何都要回到UIView伸展以填满屏幕的旧行为?
答案 0 :(得分:1)
这不会立即得到解决,但它是一个值得尝试的快速补丁。
如果您的观点始终是纵向的,那么这应该适合您。如果它需要在iPhone 6(s)+上旋转或UISplitViewController
,那么它可能不会。
在视图控制器中缩放每个子视图以获得新的屏幕尺寸。为设备屏幕大小声明几个宏:
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height
然后向视图控制器添加一个方法,该方法遍历所有子视图,以根据iPhone 4屏幕大小按比例调整每个视图的大小。
- (void)resizeSubviews:(UIView *)view {
CGRect frame = view.frame;
frame.origin.x = frame.origin.x / 320.0f * kScreenWidth;
frame.origin.y = frame.origin.y / 480.0f * kScreenHeight;
frame.size.width = frame.size.width / 320.0f * kScreenWidth;
frame.size.height = frame.size.height / 480.0f * kScreenHeight;
view.frame = frame;
for (UIView *subview in view.subviews) {
[self resizeSubviews:subview];
}
}
然后在使用以下内容添加子视图后调用该方法:
[self resizeSubviews:self.view];
有很多方法无法使用,但在从iPhone 4s切换到iPhone 5时,它覆盖了我。