Доступ к каждой кнопке в UIView на iPhone - PullRequest
3 голосов
/ 04 июня 2009

Что я хочу сделать, так это в идеале перебрать все кнопки в UIView (у меня их много, более 40 кнопок) и, в зависимости от тега, изменить изображение, отображаемое кнопкой. Кто-нибудь знает, как я могу это сделать?

Спасибо !!!!

Ответы [ 3 ]

11 голосов
/ 22 декабря 2009

Я бы сказал, используйте свойство subviews, как сказал devilaether, но сделайте дополнительную проверку, чтобы убедиться, что подпредставление является UIButton, прежде чем делать с ним что-либо еще:

for(UIView *view in [rootView subviews]) {
    if([view isKindOfClass:[UIButton class]]) {
        if([view tag] == 0) {
            // First image
        } /* ... */
        else {
            NSLog(@"didn't recognize tag");
        }
     } else {
        NSLog(@"view is not a button");
     }
}

Вы также могли бы упростить свою жизнь, если бы хранили где-нибудь NSArray с UIB-кнопками, которые вы хотите перебрать; это вывело бы чек isKindOfClass:. См. протокол NSObject для получения дополнительной информации.

1 голос
/ 04 июня 2009

Используйте свойство subview UIView, содержащее кнопки. Для каждого элемента UIView в этом NSArray проверьте свойство tag . Если тег соответствует тому, что нужно вашей логике, измените изображение, отображаемое в этом экземпляре UIView - который в этом случае является одной из кнопок.

0 голосов
/ 22 февраля 2013
for(i=0; i<numberOfTags; i++){ 
UIButton *tempBtn = [yourView viewWithTag:i];
[tempBtn setImage:yourImage];

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...