0
我的看法層次結構如下所示:(我用Autolayout
)的drawRect取決於視圖 - >在啓動自定義視圖使用錯誤的幀
ContentView
CustomView
(實現drawRect
)Button
TableView
在CustomView
的drawRect
我從通過所有CustomView.SuperView.subViews
頂部至底部繪製UIBezierPath
其中線停止,如果Frame
處於方式,並開始以進一步繪製直到下一幀等。
對Startup
當DrawRect
被稱爲Views
尚未完成佈局我猜,因爲我從視圖中得到的幀是不正確的。如果我在ViewDidAppear
方法調用
customView.setNeedsLayout()
customView.layoutIfNeeded()
問題得以解決。但是這會影響性能,導致它被調用兩次。 什麼是正確的方法來做到這一點?
爲什麼你認爲訪問超級視圖是錯誤的?當超視圖爲零時,視圖有很多事情不應該做。 – uchuugaka
特別是要有一個適當的上下文來繪製。 – uchuugaka
@uchuugaka'drawRect:'如果沒有合適的上下文將不會被調用。 –