Опираясь на ответ yhpets, он также поддерживает изменения ориентации, применяя теги к каждому ImageView и используя их для ссылки на каждый ImageView и изменения размера при повороте устройства ...
В вашем файле ViewController.h вам нужно настроить Array и ScrollView ...
@interface ViewController : UIViewController{
NSMutableArray *imgs;
IBOutlet UIScrollView *scr;
}
@property (strong, nonatomic) IBOutlet UIScrollView *scr;
И в вашем ViewController.m вам нужно прослушать didRotateFromInterfaceOrientation и изменить размеры ImageViews, чтобы соответствовать новому экрану. Нам нужно установить переменные screenWidth и screenHeight в зависимости от того, портретный или альбомный, и использовать их для изменения размера каждого изображения и вида прокрутки.
@implementation ViewController
@synthesize scr;
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
if ((self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)||(self.interfaceOrientation == UIInterfaceOrientationPortrait)){
//screenWidth and screenHeight are correctly assigned to the actual width and height
}else{
screenHeight = screenRect.size.width;
screenWidth = screenRect.size.height;
screenRect.size.width = screenWidth;
screenRect.size.height = screenHeight;
}
NSLog(@"see it's right now= (%f,%f)",screenWidth,screenHeight);
self.scr.contentSize=CGSizeMake(screenWidth*imgs.count, screenHeight);
for(int i=0;i<imgs.count;i++){
UIImageView *targetIV = (UIImageView*)[self.view viewWithTag:(i+1)];
CGRect frame;
frame.origin.x=screenWidth *i;
frame.origin.y=0;
frame.size=CGSizeMake(screenWidth, screenHeight);
targetIV.frame = frame;
}
}///////////////////////////////////////////////////////////////////////////
- (void)viewDidLoad{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
imgs=[[NSMutableArray alloc]init];
[imgs addObject:[UIImage imageNamed:@"1001.png"]];
[imgs addObject:[UIImage imageNamed:@"1002.png"]];
[imgs addObject:[UIImage imageNamed:@"1003.png"]];
[imgs addObject:[UIImage imageNamed:@"1004.png"]];
for(int i=0;i<imgs.count;i++){
CGRect frame;
frame.origin.x=self.scr.frame.size.width *i;
frame.origin.y=0;
frame.size=self.scr.frame.size;
UIImageView *subimg=[[UIImageView alloc]initWithFrame:frame];
subimg.image=[imgs objectAtIndex:i];
subimg.tag = (i+1);
subimg.contentMode = UIViewContentModeScaleAspectFit;
[self.scr addSubview:subimg];
}
self.scr.contentSize=CGSizeMake(self.scr.frame.size.width*imgs.count, self.scr.frame.size.height);
}