2014-10-31 1 views
0

다른 뷰 컨트롤러를 제시 한 후 UIView의 프레임 및 위치 속성이 초기 값으로 재설정됩니다.다른 뷰 컨트롤러를 제시 한 후 UIView가 초기 값으로 재설정됩니다.

- (IBAction)moveClicked:(UIButton *)sender { 
    self.imvOriginal.center = CGPointMake(self.imvOriginal.center.x + 200, self.imvOriginal.center.y + 200); 
} 

- (IBAction)showClicked:(UIButton *)sender { 
    UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    TopViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"topViewController"]; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 

topViewController가 닫히면 imvOriginal의 가운데 속성이 자동으로 재설정됩니다. 실제로이 속성은 topViewController가 열릴 때 재설정됩니다.

팬, 핀치, 제스처 회전을 사용하여 ImageView의 이동, 크기 조정, 회전을 구현해야하므로 자동 제한을 사용하지 않습니다. 이 기능은 ImageView 레이어의 affineTransform 속성을 변경합니다.

이 문제는 어떻게 해결해야합니까?

+0

자동 레이아웃을 사용 중지 했습니까? – rdelmar

+0

아니요, ImageView에 제약 조건을 설정하지 않았습니다. – jeilsoft

+0

제약 조건을 설정하지 않는 것이 자동 레이아웃을 끄는 것과 같은 것은 아닙니다. 사용자가 직접 추가하지 않으면 시스템에서 제한 조건을 추가합니다. 자동 레이아웃을 사용하지 않으려면 파일 관리자로 이동하여 "자동 레이아웃 사용"상자의 선택을 취소해야합니다. – rdelmar

답변

1

표시되는 문제는 자동 레이아웃 때문입니다. 보기에 대한 제한 조건을 설정하지 않더라도 자동 레이아웃이 설정된 경우 (기본적으로) 시스템이 제한 조건을 추가합니다. 스토리 보드의 일부보기에 자동 레이아웃을 사용하고 다른 특정보기에는 자동 레이아웃을 사용하지 않으려면 해당보기를 코드로 작성해야합니다.

관련 문제