Xcode5 iOS7 - UIPopoverController Corner Radius

gng*_*zrd 14 uipopovercontroller ios ios7

我正在将应用程序转换到相当流畅的iOS 7,有一点我无法弄清楚.

我有一个带有几个按钮的视图控制器,我用UIPopoverController显示.

在我看来,像弹出控制器正在做一些事情来剪切它的视图控制器的内容被舍入.

iOS6(我想要这个):

在此输入图像描述

iOS7(改变了一些东西):

在此输入图像描述

我正在使用这里描述的自定义popover控制器后台类http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller

这是我的背景类http://pastebin.com/fuNjBqwU的特定版本

有没有人知道要改变什么才能让它回到我的iOS 6外观?

小智 32

在popover内容控制器中:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    self.view.superview.layer.cornerRadius = 0;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!为了防止其他人遇到与我相同的问题,我想补充一点,如果你的contentView在navigationController中,你需要调整到这个:`self.navigationController.view.superview.layer.cornerRadius = 0;` (3认同)

小智 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;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

7870 次

最近记录:

11 年,3 月 前