【问题标题】:Xcode5 iOS7 - UIPopoverController Corner RadiusXcode5 iOS7 - UIPopoverController 角半径
【发布时间】:2013-09-18 21:16:25
【问题描述】:

我正在将一个应用程序过渡到相当顺利的 iOS 7,但有一件事我无法弄清楚。

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

在我看来,popover 控制器正在做一些事情来剪辑它的视图控制器的内容以进行四舍五入。

iOS6(我想要这个):

iOS7(有所改变):

我正在使用此处描述的自定义弹出框控制器背景类http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller

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

有谁知道要改变什么让它回到我的 iOS 6 外观?

【问题讨论】:

    标签: ios uipopovercontroller ios7


    【解决方案1】:

    在弹出内容控制器中:

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

    【讨论】:

    • 这行得通。我在我的 Popover 样式 Storyboard Segue 中加载了一个子类 UINavigationController,并在我的子类中实现了这个解决方案,并且我不再有内部圆角。
    • 谢谢!以防万一其他人和我有同样的问题,我想补充一点,如果你的 contentView 在一个 navigationController 中,你需要调整一下:self.navigationController.view.superview.layer.cornerRadius = 0;
    【解决方案2】:

    我尝试让@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;
                }
            }
        }
    }
    

    【讨论】:

    • 如果没有超级视图,while 可能会失败。将“view = view.superview”放在“if”之后。
    【解决方案3】:

    也许您可以将背景视图的 contentViewInsets 替换为:

    + (UIEdgeInsets)contentViewInsets{
        return UIEdgeInsetsZero;
    }
    

    然后只需在您的 contentViewController 视图的边缘添加一些额外的填充,这样即使角落仍然是圆角的,它们也不会包含任何弹出框内容,因此圆角效果将不可见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 2013-10-11
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      相关资源
      最近更新 更多