Как использовать цикл for для отображения NSArray из UIImage - PullRequest
2 голосов
/ 26 мая 2011

Эй, ребята, Итак ... допустим, у меня есть NSArray изображений

NSMutableArray *images = [NSMutableArray new];
[images addObject:[UIImage imageNamed:@"line1.png"]];
[images addObject:[UIImage imageNamed:@"line2.png"]];
[images addObject:[UIImage imageNamed:@"line3.png"]];
[images addObject:[UIImage imageNamed:@"line4.png"]];

Теперь я хотел бы загрузить все это сразу, используя цикл for, но здесь есть одна загвоздка ... Мне нужно иметь возможность установить изображения как скрытые, пока пользователь не отобразит их в процессе взаимодействия.

 for (UIImage *image in images) {
    UIImageView *line = [[UIImageView alloc] initWithImage:image];
    line.hidden = YES;
    [self.view addSubview:line];
}

Но тогда как мне установить скрытую BOOL на NO, используя другой метод?

В качестве вторичного вопроса, как можно было бы освободить * строку в приведенном выше коде?

Спасибо, Даррен

Ответы [ 3 ]

5 голосов
/ 26 мая 2011

Один из вариантов - настроить изображения следующим образом:

int nextTag = 1;
for (UIImage *image in images) {
    UIImageView *line = [[UIImageView alloc] initWithImage:image];
    line.hidden = YES;
    line.tag = nextTag;
    [self.view addSubview:line];
    [line release];
    nextTag++;
}

... и затем, чтобы отобразить их, вы можете сделать:

UIView* imageView = [self.view viewWithTag: lineNumber];
imageView.hidden = NO;

... при условии, что ваш пользовательобработчик взаимодействия может определить, с какой линией в пользовательском интерфейсе взаимодействует пользователь.

2 голосов
/ 26 мая 2011

В качестве дополнительного вопроса, как бы одна строка * вышла в коде выше?

 for (UIImage *image in images) {
    UIImageView *line = [[UIImageView alloc] initWithImage:image];
    line.hidden = YES;
    [self.view addSubview:line];   // this retains the subview.
    [line release];                // release line like this.
 }
0 голосов
/ 14 декабря 2013
**

-(IBAction)btnReviewStar:(id)sender{
    for (int i =([sender tag] ==30); i<36; i++) {
        btnReviewStar.selected = NO;
        btnReviewStar1.selected = NO;
        btnReviewStar2.selected = NO;
        btnReviewStar3.selected = NO;
        btnReviewStar4.selected = NO;
        if([sender tag] == 31) {
            btnReviewStar.selected = YES;
            break;
        } else if([sender tag]==32) {
            btnReviewStar.selected = YES;
            btnReviewStar1.selected = YES;
            break;
        }  else if([sender tag]==33) {
            btnReviewStar.selected = YES;
            btnReviewStar1.selected = YES;
            btnReviewStar2.selected = YES;
            break;
        }  else if([sender tag]==34) {
            btnReviewStar.selected = YES;
            btnReviewStar1.selected = YES;
            btnReviewStar2.selected = YES;
            btnReviewStar3.selected = YES;
            break;
        }  else {
            btnReviewStar.selected = YES;
            btnReviewStar1.selected = YES;
            btnReviewStar2.selected = YES;
            btnReviewStar3.selected = YES;
            btnReviewStar4.selected = YES;
            break;
        }
    }
}

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