我正在尋找一種聰明的方式來刪除子視圖(與removeFromSuperview
)當子視圖本身(或其中的一個組成部分)觸發刪除。對於源代碼,這將是像如何從一個組件觸發時刪除子視圖?
UIView * sub_view = [[[UIView alloc] initWith...
UIButton *button = [UIButton buttonWithType...
[sub_view addSubview:button];
[self.view addSubview:sub_view];
如果按鈕現在有這樣的事情
[button addTarget:self action:@selector(closeMySubview) forControlEvents:UIControlEventTouchUpInside];
內closeMySubview
到removeFromSuperview
呼叫沒有工作,但結果SIGABRT和無法識別的選擇發送到實例。 ..。那麼有沒有更多的東西不再是一個驚喜,但什麼是正確的方式?
(如果從另一個GUI組件觸發會工作的原因,但這裏是不是點刪除子視圖。)
這起作用。我認爲關鍵是導致removeFromSuperview的調用必須來自應該刪除的相同視圖?! – georgij 2010-08-08 16:52:53
是的,這在邏輯上最有意義。我喜歡這樣想: 假設我給你看了一隻手錶。你看看它,然後決定你完成了。誰的工作是將手錶放在我的手錶或手錶上? 在這種情況下,視圖向您展示了一些東西。因此,應該如何以及何時放棄! – DexterW 2010-08-09 00:46:32