У меня есть галерея UIImageViews (которые являются SQUARE), объявленные как подпредставления UIScrollView:
int size = self.view.frame.size.width/number;
int maxSize = [list count]; //amount of images to show in this view
imageViewArray = [[NSMutableArray alloc] init];
for (int i=0,j=1,k=0; i<maxSize; i++, j++){
UIImageView *imageView = [[UIImageView alloc] initWithImage:[list objectAtIndex:i]];
if (i % number == 0)
{
j = 1;
k++;
}
imageView.frame = CGRectMake((size*(j-1)), (size*(k-1)), size, size);
imageView.contentMode = UIViewContentModeScaleAspectFit;
[imageView setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth];
[imageScrollView addSubview:imageView];
imageScrollView.contentSize = CGSizeMake(size*number, size*(maxSize/number));
[imageScrollView setAutoresizesSubviews:YES];
В портретном режиме все в порядке. Однако в альбомной ориентации я хочу, чтобы мои изображения становились больше как по оси X, так и по оси Y. При вставленном коде мои изображения получают увеличенный кадр только по ширине, поэтому они являются широкими и короткими. Я хочу, чтобы они сохранили соотношение, чтобы оно оставалось квадратным. Есть идеи? ..
Кстати: я пытался настроить AutoresizingMask на гибкую высоту, верх и низ, но это делает мои UIImages еще короче (я не знаю, почему).