Когда вы делаете:
CGRectMake(0.0f, 50.0f, 320.0f, 416.0f);
Внутри цикла for вы указываете те же точную позицию и размер для КАЖДОГО изображения, которое вы создаете в цикле for. Другими словами, каждое следующее изображение, которое вы создаете, будет располагаться поверх предыдущего изображения, в результате вы увидите только конечное изображение, которое вы создали в цикле for.
Попробуйте добавить переменную счетчика "i" к значению X и Y в CGRectMake (), чтобы компенсировать каждое изображение, которое впоследствии создается.
Допустим, каждое изображение было размером 100 на 100 пикселей, а затем что-то вроде:
CGRectMake(0.0f + (i * 100.0f), 50.0f, 320.0f, 416.0f);
Устанавливает каждое изображение сразу после предыдущего (поскольку каждое изображение имеет ширину 100 пикселей, мы смещаем его на 100 пикселей и используем это значение в качестве начальной точки следующего изображения). Если вы добавите дополнительное значение после (i * 100), чтобы оно стало (i * 100 + 50), тогда это даст вам отступ в 50 пикселей по сравнению с предыдущим изображением.
Если ваши изображения имеют разные размеры, вам нужно предварительно рассчитать ширину и высоту изображения и включить их в ваш метод CGRectMake ().
Надеюсь, это поможет.
Кроме того, вместо создания стольких представлений, которые можно добавить к представлению с прокруткой, вы можете написать код следующим образом:
scrollView = [[UIScrollview alloc] init];
. . .
for(...)
{
UIImageView *currentImage = [[UIImageView alloc] initWithFrame:CGRectMake(0.0f + (i * 100.0f), 50.0f, 320.0f, 416.0f);
[currentImage setImage:[UIImage imageNamed:[imageUrls objectAtIndex:i]]];
. . .
[scrollView addSubview: currentImage];
[currentImage release];
}