2010-08-18 53 views
2

我見過的人使用標記的iPhone編程,像內標籤或實現代碼如下細胞:在iphone編程中使用標籤 - 有人可以解釋嗎?

name.tag = kNameTag

有人可以用一個例子解釋這些標籤是如何使用?我認爲這樣可以在以後引用ui元素?就像如果你以編程方式使用for循環在iphone屏幕上創建一個UIButton數組,你可以爲for循環中的每個按鈕分配標籤嗎?

謝謝!

回答

3

你在問題中包含的例子是常見的例子之一。

您可以在循環中實例化按鈕(或其他UI元素),爲每個按鈕分配一個增量標籤。當IBAction被其中一個按鈕調用時,您可以向發件人詢問它的標籤,該標籤告訴您哪個按鈕觸發了請求。

for(int i = 0; i < 10; i++) { 
    UIButton * button = [[UIButton alloc] init...]; 
    button.tag = i; 
} 

IBAction爲:

- (IBAction)doSomethingFromButtonTap:(id)sender { 
    NSLog(@"Button pressed: %d", [sender tag]); 
} 

他們還廣泛用於尋找父視圖中的特定子視圖。 UIView提供了一個viewWithTag:(NSInteger)tag方法。這在構建不帶子類的自定義視圖時非常有用(或者您不想持有對子視圖的引用,但知道標記的情況)。

2

標記是整數。你使用UIView.tag將它們分配給視圖。然後,您使用-[UIView viewWithTag:]來搜索視圖的視圖層次結構。

UIKit不使用標籤(我認爲),所以它們可以根據需要隨意使用。但是,標籤對於您的應用程序來說是全球性的,所以它們不是IBOutlet的理想替代品(但是當您有很多視圖時通常會更方便)。

避免使用0作爲標記,因爲它是默認標記— [v viewWithTag:0]不太可能返回您正在查找的視圖。

相關問題