2012-10-05 15 views
1

我實現了一個CustomPopOverBackgroundView,它是UIPopoverBackgroundView的子類。IOS UIPopoverBackgroundView,設置不同的內容插入

伊夫實現類方法

+(UIEdgeInsets)contentViewInsets{ 
    return UIEdgeInsetsMake(CONTENT_INSET, CONTENT_INSET, CONTENT_INSET, CONTENT_INSET); 
} 

而且目前CONTENT_INSET是固定值:

#define CONTENT_INSET 25.0 

我想什麼做的,是能夠改變這個值,所以我可以在應用程序中使用不同的內容插入不同的彈出窗口。

是否有可能只有一個popoverbackground類?

非常感謝。

回答

1

我不認爲有一個完美的方式來做到這一點,我認爲蘋果的API不允許我們自己創建背景類的實例是蹩腳的。然而,一個有點乏味的解決方法是創建一個像setContentViewInsets:(UIEdgeInsets)insets的靜態方法來更改靜態變量的值,例如contentViewInsets,然後可以通過+(UIEdgeInsets)contentViewInsets方法返回。

那麼,您每次需要更改contentViewInsets時都必須調用「setContentViewInsets」。這有點煩人,但這是我能想到的「最好」的方式,而不需要創建一堆背景類。

順便說一下,在運行時改變contentViewInsets會產生動畫副作用,對我而言,這也是令人討厭的。

我真的希望蘋果可以改變API來取代實例而不是背景類本身。

相關問題