매우 간단한 작업을하는 데 많은 어려움을 겪고 있습니다. 나는 viewController와 subViewController를 가지고 있는데, 둘 다 nib에서로드 된 뷰를 가지고있다. 설명을 위해 부모보기는 1024 x 748 크기이고 하위보기는 닙에서 640 x 480입니다. 의 ViewController의 viewDidLoad에에 UIView setCenter 문제
는 그래서 같은 subViewController의보기를 추가 :[self.view addSubview:self.subViewController.view];
NSLog(@"subview.frame:%@",NSStringFromCGRect(self.subViewController.view.frame));
로그 출력 :
subview.frame:{{0, 0}, {640, 480}}
그런 다음, 단지 물건을 테스트하기 위해, 내가 setCenter를 사용
이 위치를 변경하려고 할을 다음과 같은 위치에서 상위보기 내의 하위보기 :CGPoint newCenter = CGPointMake(0,0); //should stay at the same position..
[self.subViewController.view setCenter:newCenter];
NSLog(@"after changing center.subview.frame:%@",NSStringFromCGRect(self.subViewController.view.frame));
개 로그 출력 :
after changing center. subview.frame:{{-320, -240}, {640, 480}}
지금 뭔가가 높으신 양반에 망쳐지고 할 수 있다는 느낌이하고 스프링 & 스트럿/크기 & 위치 옵션을 함께 할 수있는 뭔가 추측하고있다. 나는 IB에 관해서 가장 적게 이해하고있는 특징이기 때문에 이것이 유일한 것이라고 추측 할 수 있습니다.
이 문제의 원인은 무엇입니까? 여러분은 IB에서 viewcontrollers의 뷰를 설정하여 다른 viewcontrollers의 뷰와 자동으로 정렬되도록하는 방법에 대한 일반적인 팁이 있습니까? 그리고 설정 한 후에는 setCenter가 동적으로 주위를 이동시키는 올바른 방법입니까?
가 좋아 내가 볼 사용합니다. 내 오해는 프레임의 원점이 왼쪽 상단과 반대 인 중심과 같다고 생각한 것 같습니다. 멍청한 실수. IB에서 뷰의 초기 중심을 설정하는 방법이 있습니까? – donalbain
불쾌감을 드려 죄송합니다. 나는 정직한 하느님에게 정평이없는 체크 버튼을 발견했다. x_O – donalbain
거기에서 걱정하지 마라. IB에서 Attributes 창의 세 번째 탭 (눈금자 포함)은 하위 뷰의 위치와 크기를 나타냅니다. 이를 통해 프로그래밍 방식으로 중앙, 측면 또는 모서리를 정확하게 정렬 할 수 있습니다. – PengOne