因爲現在,viewWithTag
實際上首先搜索自己,然後所有的子視圖遞歸地遍歷整個子樹,以獲得具有該標記的視圖。在iOS上,有沒有辦法只搜索某個標籤的子視圖?
但是,如果我將子視圖的標籤設置爲100,101等,然後查找標籤100,但是當前視圖的父級將當前視圖的標籤設置爲100,會怎樣?然後viewWithTag
將返回當前視圖,而不是任何子視圖。
同樣奇怪的是,如果代碼是
[fooView viewWithTag: 123]
爲什麼代碼要搜索的子樹,包括fooView本身?這就像,代碼不知道fooView是否足夠好,也不想搜索它。或者換句話說,fooView
被告知要搜索自己......這很奇怪。一個觀點不知道自己? (需要做一個搜索尋找自己?)
那麼有沒有辦法只搜索子視圖和宏觀子視圖(沒有尋找自我)?
我想知道爲什麼'viewWithTag'的默認行爲不是這樣開始的......我們需要做一些複雜的事情來實現它 –
我不知道爲什麼。我通常不喜歡使用'-viewWithTag:'如果我可以避免它,但也許它的大量用戶可以在這個主題上加入。無論如何,將其添加到一個類別應該是一個簡單的方法來獲得你想要的。 –
例如,我可能會這樣做:在'cellForRowAtIndexPath'中,我將取出一個單元格,如果存在,則只需使用此標記查找現有標籤或之前添加的多個UIImageView,以便更改文本或圖像,而不是將其全部刪除並重新創建新圖像 –