2016-07-10 8 views
0

저는 어린이가 UIView인데 뷰가 방향에서 세로 방향으로 또는 그 반대로 방향이 변형 될 때 중심 x 및 y 원점의 업데이트 값을 가져 오려고합니다. . 사용하고 있습니다 Autolayout방향이 변경된 후 UIView의 중심 위치 업데이트 iOS8

이 두 가지 방법을 시도했지만 값이이 방법으로 업데이트되지 않았습니다.

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 

-(void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator 

누구나 오리엔테이션을 변경하고 값을 업데이트 할 때 실행되는 모든 방법을 알려주십시오.

+0

'viewWillLayoutSubviews'/ 'viewDidLayoutSubviews'를 사용할 수 있습니까? –

답변

1

전환 후 다음과 같은 메서드가 호출됩니다. 이 방법을 통해 확인할 수 있습니다.

func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) 
0

또한

-(void) layoutSubviews 

의 위치를 ​​추적 할 수 있습니다 또는 당신이 컨트롤러를 사용하는 경우 :

-(void) viewDidLayoutSubviews 

이 메소드는 것 즉,보기 다시 그리기 때마다 전화입니다 오리엔테이션을 변경 한 후에도 호출 할 수 있습니다. 참고로, 나는이 방법을 사용하여 새로운 레이아웃을 설정하는 대신 원하는대로 위치를 얻는 것을 선호합니다. 이 방법으로 프레임을 설정하면 디버그하기가 어려울 수 있습니다.)