UIImageView setImage не работает - PullRequest
       19

UIImageView setImage не работает

2 голосов
/ 16 февраля 2012

Я делаю анимацию, вызывая эту функцию несколько раз, чтобы я мог сделать анимацию:

Метод, в котором у меня возникла проблема, это метод класса UIImageView подкласса

 @interface MyCustomImageView : UIImageView {

и это следующее:

- (void) animationShowFrame: (NSInteger) frame {
    NSLog(@"frame: %d", frame);

    if ((frame >= animationNumFrames) || (frame < 0))
        return;

    NSData *data = [animationData objectAtIndex:frame];
    UIImage *img = [UIImage imageWithData:data];
    NSLog(@"%@",img);
    NSLog(@"data: %d", [data length]);
    [self setImage:img];
 }

Проблема в том, что, кажется, первое изображение идеально установлено, но остальные игнорируются ... NSLogging их Я вижу, что изображения есть и данные каждый раз разные, поэтому они загружаются нормально, даже я пытался добавить SubSubview к себе (класс является дочерним для UIImageView) через UIImageView, и они показывают, но в этом случае я не использую слишком много памяти ... Запрашивая описание в консоли, я вижу, как self.image = nil после его установки ... Я не знаю, что еще я могу с этим сделать, это сводит меня с ума.

1 Ответ

4 голосов
/ 16 февраля 2012

Попробуйте создать подкласс UIView вместо UIImageView и создайте UIImageView как свойство внутри.

@interface CustomView : UIView {
    UIImageView *imageView;

Затем в animationShowFrame используйте этот imageView:

- (void) animationShowFrame: (NSInteger) frame {

    NSData *data = [animationData objectAtIndex:frame];
    UIImage *img = [UIImage imageWithData:data];
    [self.imageView setImage:img];
}

Hopeэто помогает!

...