2010-08-18 2 views
2

Я видел людей, используя теги в iphone программирования, как внутри этикетки или Tableview клеток:Использование тегов в программировании на iphone - может кто-нибудь объяснить?

name.tag = kNameTag

Может кто-то объяснить на примере, как можно использовать эти теги? Я понимаю, что это значит, что позже вы можете обратиться к элементу ui? Как если бы вы программным образом использовали цикл for для создания массива UIButtons на экране iphone, задаете ли вы теги для каждой кнопки в цикле for или что-то еще?

Спасибо!

ответ

3

Пример, который вы включили в свой вопрос, является одним из распространенных.

Вы можете создавать кнопки (или другие элементы пользовательского интерфейса) в цикле, назначая им поэтапный тег. Когда 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. Это полезно при создании пользовательских представлений без подклассов (или ситуаций, когда вы не хотите хранить ссылки на subviews, но знаете тег).

2

Теги - целые числа. Вы назначаете их для просмотра с использованием UIView.tag. Затем вы используете -[UIView viewWithTag:] для поиска иерархии представления для представления.

UIKit не использует теги (я думаю), поэтому они бесплатны для использования при необходимости. Тем не менее, теги являются глобальными для вашего приложения, поэтому они не являются идеальной заменой для IBOutlet (но часто это становится более удобным, когда у вас много просмотров).

Избегайте использования 0 в качестве тега, поскольку это знак по умолчанию — [v viewWithTag:0] вряд ли вернет представление, которое вы ищете.

Смежные вопросы