iPhone: UIImageView не показывает изображения - PullRequest
2 голосов
/ 06 апреля 2010

У меня нарисован UIImageView в моем nib-файле, и он подключен к iBoutlet imageView. Я могу загрузить отдельные картинки, которые будут отображаться очень хорошо, но когда дело доходит до рисования множества изображений отдельно, как анимация, изображения не будут отображаться. У меня есть функция drawImage (), которая берет NSData-объекты (данные изображения) и рисует их на экране (imageView).

Основная функция имеет цикл for, который зацикливается в 300 раз быстрее, чем может, и каждый раз вызывает функцию drawImage и передает ей различные данные изображения. Иногда, когда я выполняю этот код, появляется последняя картинка из этой «анимации», иногда совсем нет. Может быть, мне нужно запланировать достаточно времени для imageView, чтобы изображение могло быть показано?

Надеюсь, у кого-нибудь есть подсказки. Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 06 апреля 2010

всего пару минут назад, после 6 часов борьбы с этим мне удалось заставить его работать так, как я хотел.

Это волшебная линия, которая сделала это:

[self.imageView performSelectorInBackground:@selector(setImage:) 
                                 withObject:imageData];

Спасибо за помощь! :)

0 голосов
/ 06 апреля 2010

попробуйте что-то вроде

// create the view that will execute our animation
     UIImageView* ImageView = [[UIImageView alloc] initWithFrame:self.view.frame];

     // load all the frames of our animation
     ImageView.animationImages = [NSArray arrayWithObjects:   
                                 [UIImage imageNamed:@"1.png"],
                                 [UIImage imageNamed:@"2.png"],
                                 [UIImage imageNamed:@"3.png"],
                             nil];

     // all frames will execute in 1.75 seconds
     ImageView.animationDuration = 1.75;
     // repeat the annimation forever
     ImageView.animationRepeatCount = 0;
     // start animating
     [ImageView startAnimating];
     // add the animation view to the main window
     [self.view addSubview:ImageView];
...