2012-02-16 87 views
3

我找不到像UIView這樣做的方法,如下圖所示: 它描繪了帶有陰影的圖像背景。 是否有任何用於填充的架子,或者是否需要添加更多子對象以實現此效果?如何添加填充到UIView?

enter image description here

+0

爲什麼不能做同樣的與背景圖片,以幀圖像,添加10 x和y原點座標和更新寬度和高度? – 2012-02-16 13:20:04

+0

嗯..我不這麼認爲。圖像使用'view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@「imageWithShadow.png」]];''設置。 因此,圖像的框架是視圖的框架。 – 2012-02-16 14:52:42

+0

我得出的結論是,這不能用任何方法/自動完成。 – 2012-02-16 15:49:24

回答

3

我認爲這將是非常簡單的事,但你必須實現它自己。

如果我正確理解你的問題,你想有自動添加到您的子視圖填充值 - 例如,通過一個X的0, 0一個按鈕的幀/ Y值,但是有它的實際位置10, 10

我還沒有完全充實了這一點,但你可能會需要創建一個UIView子類,它有兩個額外的比特 - 首先,「填充」屬性(可能是一個UIEdgeInset),然後重寫setFrame設定器自動將正確數量的填充添加到框架。例如,您可以使用initWithFrame:padding:方法來創建對象。你甚至可以讓你的UIView子類自動查詢超級視圖來獲得填充。

有一個很大的範圍在這裏 - 所以我想回答你的問題,沒有 - 沒有什麼現成 - 但自己做起來很實現的,可能蠻好玩的!

(假設你發現這樣做當然這種事情開玩笑,...)

+1

我來到這個需求,因爲我厭倦了在CGRect /框架中爲x,y,寬度,高度添加/減少幻數值,以便正確放置具有複雜外觀的物品,就像我在這裏展示的那樣。子類似乎是解決這個問題的好辦法。 – 2012-02-16 16:31:01

+0

順便說一下,正確的類型是'UIEdgeInsets'(最後是「s」)。 – 2012-08-24 09:09:48