我正在将应用程序转换到相当流畅的iOS 7,有一点我无法弄清楚。
我有一个带有几个按钮的视图控制器,我用UIPopoverController显示。
在我看来,popover控制器正在做一些事情来剪切它的视图控制器的内容进行舍入。
iOS6(我想要这个):
iOS7(有些变化):
我正在使用此处描述的自定义popover控制器后台类http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller
这是我的背景课http://pastebin.com/fuNjBqwU
的特定版本有没有人知道要改变什么才能让它回到我的iOS 6外观?
答案 0 :(得分:32)
在弹出式内容控制器中:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.view.superview.layer.cornerRadius = 0;
}
答案 1 :(得分:7)
我尝试使用@ 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;
}
}
}
}
答案 2 :(得分:2)
我遇到了同样的问题,在这里找到了一个(不太令人满意的)答案:UIView default styling has rounded corners?
答案 3 :(得分:1)
也许您只需用以下内容替换背景视图的contentViewInsets:
+ (UIEdgeInsets)contentViewInsets{
return UIEdgeInsetsZero;
}
然后只是给你的contentViewController视图边缘添加一些额外的填充,这样即使角落仍然是圆角的,它们也不会包含任何弹出内容,因此圆角效果将不可见。