UIImageView не отображается в UIScrollView - PullRequest
0 голосов
/ 05 июня 2011

Здравствуйте, я не могу понять, почему UIImageView не хочет отображаться в UIScrollView. Теперь есть небольшая загвоздка, я беру изображение из библиотеки и добавляю его в UIScrollView - это, похоже, не работает.

Однако, если я просто добавлю картинку прямо в методе "с нагрузкой", он будет работать нормально: [Код]

UIImageView *tmp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"P3130016.JPG"]];

[scrollView setScrollEnabled:YES];
[scrollView setContentSize:CGSizeMake(800, 800)];
[scrollView addSubview:imageView];

Не знаю, почему или где проблема, пожалуйста, сообщите!

Ответы [ 2 ]

1 голос
/ 06 июня 2011

Я слегка озадачен вашей реализацией, так как вы не опубликовали весь свой код, вы инициируете просмотр изображений 'tmp', но я не вижу, где он используется.

Я собираюсь предположить , вам нужно определить кадр UIImageView после того, как он был инициализирован, в настоящее время UIImageView не имеет кадра и, следовательно, не рисуется в представлении.

Вы можете установить кадр так:

UIImageView *tmp = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"P3130016.JPG"]];

tmp.frame = CGRectMake(x,y,width,height);

Эти значения должны быть значениями с плавающей точкой, где x и y привязаны в верхнем левом углу экрана. Так что CGRectMake(0,0,100,100) нарисует квадрат 100 на 100 в левом верхнем углу экрана. Вы можете найти больше информации в документации здесь .

А затем добавьте его в ScrollView:

[scrollView addSubview:tmp];

Стоит также отметить, что в вашем * tmp UIImageView в данный момент происходит утечка памяти, я бы посоветовал добавить его в пул автоматического выпуска при инициализации:

UIImageView *tmp = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"P3130016.JPG"]] autorelease];
0 голосов
/ 05 июня 2011

Если вы добавили изображение в представление прокрутки после того, как представление прокрутки было загружено, вам нужно явно указать перерисовать представление.

[scrollView setNeedsDisplay];

Представление iOS отрисовывается как можно меньше, поэтому всякий раз, когда что-то требует отображения, вам нужно явно уведомить представление. См. UIView setNeedsDisplay для получения дополнительной информации.

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