我有一個UIImageView子類(AdImageView)放置在我的視圖控制器的NIB中。這個AdImageView知道如何使用從willMoveToSuperview調用的一些異步調用將遠程圖像加載到自身中。我知道這是有效的,因爲如果我通過我自己的代碼添加AdImageView,並在它被添加到超級視圖之前告訴它,加載它的圖像效果很好。但是,切換安裝程序以使用NIB時,我不確定何時在AdImageView上設置遠程路徑。設置從NIB和willMoveToSuperview加載之間的UIImageView子類:
我不能在任何VC的init方法中執行它,因爲NIB對象尚未設置。當VC的viewDidLoad被調用時,AdImageView的willMoveToSuperview已被調用。我嘗試設置一些IBOutlets,告訴AdImageView誰要求圖像url,但是在AdImageView的willMoveToSuperview之後也會調用它:
我可以在AdImageView的awakeFromNib中啓動遠程圖像加載,但我想繼續也可以選擇以編程方式將AdImageView添加到視圖控制器。把代碼放在那裏,然後讓我進入一個可以在willMoveToSuperview中重新調用遠程圖像加載的情況:除非我用某種感覺很難看的標誌來保護它。
那麼Interface Builder對象的狀態設置代碼通常在哪裏發生?
(很抱歉,對於這個問題沒有代碼,但它更多的是戰略)
我認爲這是堵塞UIView的方式比實際應該更多的邏輯,但我不想在每個想要製作廣告的視圖控制器中亂丟遠程請求。當我能忍受一點點黑客攻擊時,把整個事情變成一個自己的視圖控制器,就像一個大錘。任何其他方法也是受歡迎的。在此期間我會試一試你的代碼,謝謝! – rob5408