2013-07-08 5 views
1

저는 자동 레이아웃이 새롭습니다. 보기 및 UIImageView 포함하는 간단한 UIViewController 있어요.회전 할 때 자동 레이아웃 업데이트 이미지 크기

인물 모드에서이 이미지는 320x115 픽셀이지만 풍경으로 회전 할 때 이미지 높이를 줄이려합니다.

현재 이미지에 다음과 같은 제약이 있습니다. 어떻게 만드는 세로에서 가로로 회전시킬 때 내 UIView의 비례 세로 크기가

을 supverview하는 수위 유형은 정상 공간 수퍼하는 선도하는 공간 수퍼하는 115px -Trailing 공간 같음? 당신의 도움에 대한

감사합니다,

세바스티앙.

+0

UIImageView의 이미지 크기는 어느 정도입니까? –

+0

UIImageView는 320x115px – sebastien

답변

2

115와 같은 비례 크기를 480 (0.24)로 지정하려면 constraintWithItem : attribute : relatedBy : toItem : attribute : multiplier : constant :의 multiplier 매개 변수를 사용합니다.

아래 예제에서 IB (heightCon)의 높이 제한에 IBOutlet을 작성한 다음 코드에서 제거하고 self.view 높이의 일부를 기반으로 다른 것을 추가합니다 (iv는 이미지보기) :

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.iv removeConstraint:self.heightCon]; 
    NSLayoutConstraint *newHeightCon = [NSLayoutConstraint constraintWithItem:self.iv attribute:NSLayoutAttributeHeight relatedBy:0 toItem:self.view attribute:NSLayoutAttributeHeight multiplier:.24 constant:0]; 
    [self.view addConstraint:newHeightCon]; 
} 
+0

입니다. 감사합니다! IB에서 직접 할 수 있습니까? 보기가 세로에서 가로로 회전 할 때 구속 조건을 바꾸고보기가 가로에서 세로로 회전 할 때 다시 바꾸어야한다고 가정합니다. 권리? – sebastien

+0

@ user951368 아니요, IB에서이 작업을 수행 할 방법이 없습니다. 불행히도 IB의 승수 매개 변수에 액세스 할 수 없습니다. 두 번째 문장의 의미가 확실하지 않습니다. 게시 한 것 이외의 것을 할 필요가 없습니다. – rdelmar

+0

어쩌면 나는 뭔가를 놓쳤다. 처음에는 내보기가 Portrait 모드로 표시되고 UIImage 크기는 320x115px입니다. 그런 다음 사용자가 iPhone을 회전시켜 이미지의 높이를 조정해야합니다. 회전 시작 부분에서 구속 조건을 교체해야한다고 가정합니다. 그런 다음 사용자가 다시 세로로 회전 할 때 구속 조건을 바꿔 원래 높이 (115 픽셀)로 복원해야합니다. 맞아? – sebastien