2009-12-29 2 views
0

Я загружаю UIScrollView с UIImageViews. imageViews ниже - NSMutableDictionary из UIImageViews. Scrollview - это IBOutlet с включенной функцией прокрутки и пейджинга. Цикл добавляет два изображения. Тем не менее, я вижу только первое изображение в scrollview и не могу прокручивать. Есть ли что-то еще, что мне нужно для включения прокрутки?UIScrollView не прокручивает

for(NSString *s in [imageViews allKeys]){ 
    UIImageView *myImageView = [imageViews valueForKey:s]; 
    myImageView.frame = CGRectMake(0, 0, 120, 90); 
    myImageView.contentMode = UIViewContentModeScaleAspectFit; 
    scrollView.contentSize = CGSizeMake(120, 90); 
    [scrollView addSubview:myImageView]; 
} 

[scrollView layoutSubviews]; 
+0

'for (NSString * s in [imageViews allKeys])' может быть записано как 'для (NSString * s в imageViews)' – user102008

ответ

4

Я предполагаю, что ваш scrollView в IB составляет около 120x90? Затем вам нужно будет установить для contentSize значение не менее 240x90 в случае 2 изображений и (n * 120) x90 для n количества изображений, если вы хотите, чтобы вы могли прокручивать/горизонтально. Это связано с тем, что contentSize указывает всю «виртуальную» область ваших изображений.

Кроме того: вы в настоящее время размещения каждого ImageView в тех же координатах:

myImageView.frame = CGRectMake(0, 0, 120, 90) 

Вот почему вы видите только одно изображение, они перекрывают друг друга. Вам нужно будет разместить каждый последовательный imageView не менее 120 справа от предыдущего.

+0

Я прокомментировал [scrollView layoutSubviews], и все работает нормально. Это что-то нужно? – 4thSpace

+0

Нет, я не думаю, что вам это нужно здесь. Я видел только layoutSubviews, используемые в таких случаях, как изменение размера анимации. – mkrause