7

我通過繼承UIPopoverBackgroundView來製作一個自定義的彈窗背景。我想讓沒有圓角的popover。我可以成功地創建沒有圓角的背景(圖片中的紅色),但似乎UIPopoverController爲popover的內容(圖片中的綠色)添加了一些圓角的蒙版。這是我酥料餅的角落的畫面:沒有圓角的UIPopoverBackgroundView

enter image description here

任何想法如何,我可以克服它?

+0

嘗試設置UIPopupviewController的popoverLayoutMargins財產。 – Tirth

+0

@Reformer感謝,但它沒有爲我工作 – sash

+0

你能告訴我們你的代碼嗎? – Sulthan

回答

32

我發現了一個簡單的解決方案,在酥料餅的內容控制器(你傳遞給initWithContentViewController什麼)地址:

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

謝謝它節省了我的時間......乾杯 – Sabby

+2

這已不再適用於iOS 10+,沒有檢查iOS 9。 – jhelzer

0

你可以做一個自己的PopoverBackgroundView。我從來沒有使用UIPopoverBackgroundView,但可能有一個屬性,但除此之外,你可以做一個自己的並設置沒有圓角的視圖。

+0

是否有任何API?我沒有找到UIPopoverBackgroundView內沒有設置圓角的任何api? –

+0

也許XQuartz框架可以幫助你。 –

+0

也許sash提供了正確的解決方案。 –

0

爲此,您可以更改綠色清除顏色,然後在彈出在視圖中添加一個UIView,與greencolour並添加所有其他視圖作爲其子視圖。(這是一個棘手的方式)

+0

謝謝,但彈出窗口的內容是可滾動的,所以這個解決方案不適合我 – sash

+0

你有沒有把UIScrollView作爲彈出視圖的子視圖? – Ashutosh

+0

popover的內容視圖控制器是帶有表格視圖的UIViewController – sash