Изменить цвет каждой UILabel в UIScrollView - PullRequest
2 голосов
/ 31 августа 2011

Можно ли перебрать все UILabel s в моем UIScrollview и изменить цвет?

Ответы [ 2 ]

7 голосов
/ 31 августа 2011

Предполагая, что они все подпредставления (дочерние элементы первого уровня) представления прокрутки, а не представлений контейнера внутри него ...

for(UIView *subview in theScrollView.subviews)
    if([subview isKindOfClass:[UILabel class]])
        [(UILabel *)subview setTextColor:[UIColor whateverColor]];

Если надписи находятся внутри других представлений внутри представления прокруткивам придется повторяться в каждом из подпредставлений и делать то же самое, но это довольно простой шаг из вышеперечисленного.Пример:

- (void)recolorLabelSubviews:(UIView *)view
{
    for(UIView *subview in view.subviews)
    {
        if([subview isKindOfClass:[UILabel class]])
            [(UILabel *)subview setTextColor:[UIColor whateverColor]];
        else
            [self recolorLabelSubviews:subview];
        // this doesn't handle the case where you have a label as a subview of a label
        // if for some reason you're doing that, just move the [self recolorEtc:] call out of the "else" block
    }
}

// then, wherever you want to recolor every label in the scroll view...

[self recolorLabelSubviews:theScrollView];
0 голосов
/ 31 августа 2011

1001 * попробовать *

for (UILabel *lbl in [self.view subviews]) {
    if([lbl isKindOfClass:[UILabel class]])
    {
        lbl.backgroundColor=[UIColor yellowColor];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...