2009-07-17 99 views
9

蘋果說:如何正確刪除FromSuperview?

removeFromSuperview斷開與它的父和其 窗口 接收器,並從 響應鏈中刪除。

  • (無效)removeFromSuperview

而 顯示決不調用此方法。

所以,當我想擺脫一個視圖時,我習慣於將它從超級視圖中踢出去。爲什麼我不會在可見時調用它?所以在我這樣做之前,我必須將它設置爲hidden = YES?

回答

17

規範規定了「在顯示時顯示」而不是「顯示時」。因此,例如,您絕不應在視圖的drawRect中調用removeFromSuperview

removeFromSuperview釋放視圖並可能釋放它。嘗試顯示視圖時的父視圖可能不會被釋放並導致訪問受損。