我正在将一个应用程序转换到iOS 7,这一过程相当顺利,但还有一件事情我无法解决。
我有一个视图控制器,其中包括几个按钮,我使用UIPopoverController显示它们。
看起来Popover Controller在剪辑其视图控制器的内容时会进行圆角处理。
iOS6(我想要这样):
iOS7(发生了某些变化):
这是我特定版本的背景类http://pastebin.com/fuNjBqwU
有没有人知道如何更改才能回到我的iOS 6外观?
我正在将一个应用程序转换到iOS 7,这一过程相当顺利,但还有一件事情我无法解决。
我有一个视图控制器,其中包括几个按钮,我使用UIPopoverController显示它们。
看起来Popover Controller在剪辑其视图控制器的内容时会进行圆角处理。
iOS6(我想要这样):
iOS7(发生了某些变化):
这是我特定版本的背景类http://pastebin.com/fuNjBqwU
有没有人知道如何更改才能回到我的iOS 6外观?
在弹出内容控制器中:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.view.superview.layer.cornerRadius = 0;
}
我尝试让@OneSman7的解决方案生效,但是cornerRadius视图不是contentViewController.view实例的直接上级视图。相反,我必须向上遍历视图层次结构,搜索cornerRadius为0的那个视图并重置它(它只是一个UIView实例,没有特殊的类名可供检查)。这不是最理想的解决方案,但目前似乎可以工作。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
UIView *view = self.view;
while (view != nil) {
view = view.superview;
if (view.layer.cornerRadius > 0) {
view.layer.cornerRadius = 2.0;
view = nil;
}
}
}
}
+ (UIEdgeInsets)contentViewInsets{
return UIEdgeInsetsZero;
}
然后只需在contentViewController的视图边缘上添加一些额外的填充,这样即使角仍然是圆角,也不会包含任何弹出内容,因此圆角效果将不可见。
self.navigationController.view.superview.layer.cornerRadius = 0;
- Logan