這裏是基於自動佈局的代碼的例子,應該幫助你
#import "UniversalViewController.h"
@interface UniversalViewController()
@property (strong, nonatomic) UIImageView *myImageView;
@end
@implementation UniversalViewController
@synthesize myImageView;
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor blackColor];
UIImage *myImage = [UIImage imageNamed:@"Velvet_Underground_and_Nico.jpg"];
myImageView = [[UIImageView alloc] initWithImage:myImage];
[myImageView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.view addSubview:myImageView];
[self setWidth:300 andHeight:300 toView:myImageView];
[self centerView1:myImageView toView2:self.view];
}
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self.view removeConstraints:self.view.constraints];
[self centerView1:myImageView toView2:self.view];
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
[self setWidth:450 andHeight:250 toView:myImageView];
} else {
[self setWidth:300 andHeight:300 toView:myImageView];
}
}
#pragma mark custom Autolayout methods
- (void) setWidth:(float)width andHeight:(float)height toView:(UIView *)view {
NSLayoutConstraint *myConstraint;
myConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:width];
[self.view addConstraint:myConstraint];
myConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:height];
[self.view addConstraint:myConstraint];
}
- (void) centerView1:(UIView *)view1 toView2:(UIView *)view2 {
NSLayoutConstraint *myConstraint;
myConstraint = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0];
[self.view addConstraint:myConstraint];
myConstraint = [NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0];
[self.view addConstraint:myConstraint];
}
您應該能夠根據您的需要...我希望它有助於設置圖像的大小...
你是否也使用Autolayout進行人像拍攝?我不清楚爲什麼你指定你在橫向模式下使用Autolayout,當Autolayout的整個想法是讓你的應用屏幕大小和方向獨立。如果你正在編程,你可以發佈一些代碼供我們檢查嗎? – eharo2
我在界面生成器中使用Autolayout進行所有方向 – DimonDeveloper