我遇到了標籤問題。我有幾個標籤,需要藉助標籤進行更改。我這樣做在我的代碼,但它給出了一個例外 -[UIView setText:]: unrecognized selector sent to instance
這是我的代碼:帶標籤的UILabel,無法設置文本
UILabel *label = (UILabel *)[self.view viewWithTag:0];
label.text = @"empty";
讚賞任何幫助,謝謝。
我遇到了標籤問題。我有幾個標籤,需要藉助標籤進行更改。我這樣做在我的代碼,但它給出了一個例外 -[UIView setText:]: unrecognized selector sent to instance
這是我的代碼:帶標籤的UILabel,無法設置文本
UILabel *label = (UILabel *)[self.view viewWithTag:0];
label.text = @"empty";
讚賞任何幫助,謝謝。
每個視圖的標籤默認爲0。
標籤
,你可以用它來識別你 應用程序的視圖對象的整數。
@屬性(非原子)NSInteger的標籤
討論
默認值爲0 您可以設置這個變量的值並使用該值後,以識別 視圖。
您的viewWithTag
將返回您的self.view
。所以你會得到一個UIView
而不是一個UILabel
,你的應用程序將崩潰。見viewWithTag
的定義:
viewWithTag:
返回其標記指定的值相匹配的視圖。
- (UIView *)viewWithTag:(NSInteger)tag
參數標籤
標記值來搜索。返回值接收方層次結構中的標籤屬性與標籤參數中的值匹配的視圖。
討論
該方法搜索當前視圖及其所有子視圖 爲指定視圖。
因此,對於您的解決方案,您需要爲每個標籤指定唯一的tag
。然後使用viewWithTag:
並給出您指定的標籤。
謝謝,所以我可以使用任何標籤,但0? – fuskaren
你確實可以0.但是如果你沒有指定一個非零的標籤,那麼每個'UIView'的標籤默認爲0。你將有很多標籤爲0的視圖。這絕對不是你想要的。當然你可以使用0,但非零標籤是無限更好。 – sunkehappy
你沒有找回UILabel。嘗試將您的標籤更改爲更高的數字。 0是您的視圖中的任何內容的默認標籤將首先具有該標籤。 – Martin