1
我需要某種鉤子或模板方法來覆蓋將視圖作爲子視圖添加到另一個視圖時調用哪些視圖,但在文檔中找不到它。它必須是由UIKit自動調用的東西。原因是我的觀點必須在有超級觀點時立即開始動畫,但是一旦沒有超級觀點就立即停止動畫。如何將UIView子類作爲子視圖添加到另一個視圖時得到通知?
我不能覆蓋-setSuperview:因爲Xcode不是指示這樣的類存在 - 而且我不能調用super。
我需要某種鉤子或模板方法來覆蓋將視圖作爲子視圖添加到另一個視圖時調用哪些視圖,但在文檔中找不到它。它必須是由UIKit自動調用的東西。原因是我的觀點必須在有超級觀點時立即開始動畫,但是一旦沒有超級觀點就立即停止動畫。如何將UIView子類作爲子視圖添加到另一個視圖時得到通知?
我不能覆蓋-setSuperview:因爲Xcode不是指示這樣的類存在 - 而且我不能調用super。
您想覆蓋- (void)didMoveToSuperview
。
didMoveToSuperview
告知其它的父改變視圖。
此方法的默認實現什麼都不做。只要超級視圖改變,子類就可以覆蓋它以執行其他操作 。
請記住,當從其父級刪除視圖時,也會調用此視圖,而不僅僅在將視圖添加到新父級時。相應地編碼。 – rmaddy 2013-02-09 19:56:31
編輯答案以處理刪除/添加到超級視圖。 – 2017-12-28 04:39:52