2014-03-25 57 views
1

我有一些自定義的UIViews。iOS自定義UIView設計:init vs layoutSubviews

我經常發現自己初始化自定義視圖的init中的屬性,但我也在那裏設置了框架。

我通常會將layoutSubviews留空。如果我不希望我的視圖邊界發生變化,可以在init本身設置各種子視圖框架,還是應該將其移至layoutSubviews?

我想提一下,其中一個原因,我這樣做是因爲我經常發現自己必須根據我的子視圖的佈局計算我的自定義視圖的框架(大小)。

我通常在設置完所有子視圖幀大小後調整自定義視圖的框架大小。

回答

2

您應該避免在layoutSubviews方法中分配/創建您的視圖,因爲它會被調用很多次。你可以在你的初始化方法中分配你的視圖,並在layoutSubviews方法中進行佈局。但是如果你的視圖的框架與你的視圖邊界不相關,那麼在你的初始化方法中設置它們的框架沒有什麼好擔心的。