簡體   English   中英

Xcode5 iOS7 - UIPopoverController Corner Radius

[英]Xcode5 iOS7 - UIPopoverController Corner Radius

我正在將應用程序轉換到相當流暢的iOS 7,有一點我無法弄清楚。

我有一個帶有幾個按鈕的視圖控制器,我用UIPopoverController顯示。

它看起來像彈出控制器正在做一些事情來剪切它的視圖控制器的內容被舍入。

iOS6(我想要這個):

在此輸入圖像描述

iOS7(改變了一些東西):

在此輸入圖像描述

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

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

有沒有人知道要改變什么才能讓它回到我的iOS 6外觀?

在popover內容控制器中:

- (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;
            }
        }
    }
}

也許您可以用以下內容替換背景視圖的contentViewInsets:

+ (UIEdgeInsets)contentViewInsets{
    return UIEdgeInsetsZero;
}

然后只需在contentViewController的視圖中為其邊緣添加一些額外的填充,這樣即使角落仍然是圓角的,它們也不會包含任何彈出內容,因此圓角效果將不可見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM