2010-05-03 43 views
5

我分類了UIScrollView(IPhone SDK)並覆蓋了(void)layoutSubviews;方法。 我注意到每次scrollView滾動時,都會調用這個方法。UIScrollView在每次滾動時調用layoutSubviews()

這是正確的行爲還是我的代碼中有錯誤?如果這是默認行爲,這不是一個性能殺手?

真誠, 海因裏希

+0

你爲什麼繼承UIScrollView?你爲什麼不添加子視圖呢? – 2010-05-03 18:37:14

+1

我也可以添加子視圖,但那不是重點。 – Erik 2010-05-04 08:07:27

回答

10

這是正確的行爲,它應該被用來讓你的子視圖的自定義佈局。我已經多次使用它,並沒有任何性能問題,增加了數百個項目。

一個切口從documentation關於這一主題:

子類的其他 的意見,也可以容器。在這種情況下,只需 覆蓋指定的初始化程序, initWithFrame :,創建視圖 層次結構。如果要在繪圖之前以編程方式強制 子視圖的佈局,請將 setNeedsLayout發送到視圖。然後,當調用layoutIfNeeded時, layoutSubviews方法在顯示之前僅調用 。子類應該 覆蓋layoutSubviews來執行 子視圖的任何自定義安排。

+0

我明白了,那是ScrollView的預期行爲。謝謝! – Erik 2010-05-06 07:35:38

+0

如果這個答案有幫助,也許你可以標記爲正確的:P。謝謝! – texmex5 2010-05-06 08:12:39