2012-06-22 2 views
3

방향이 변경된 후 UIView의 크기를 가져 오려고합니다. 내보기 컨트롤러에서 didRotateFromInterfaceOrientation : 구현하고 setNeedsLayout : 내보기 호출하십시오. 내보기의 layoutSubviews 메소드에서 새 프레임 크기의 순환 게재를 기반으로 일부 로직을 수행하려고하지만 프레임 크기가 새 방향을 반영하도록 업데이트되지 않았습니다 (예 : 가로로 이동 한 후 여전히 1024x768 대신 768x1024 임).iOS UIView 회전 후 프레임 가져 오기

업데이트 된 프레임 크기는 어떻게 얻습니까?

+3

대신 경계를 사용해 보셨습니까? – Pochi

+0

Derp, 저를 위해 고쳐주었습니다! 고맙습니다! – phosphoer

+1

왜 이것이 작동합니까 ?? – Remover

답변

3

루이스 오스카 (Luis Oscar)가 말한 것과 같이 대답을하면 질문에 대한 답변이 표시됩니다. 해결책은 "프레임"이 아닌 "경계"속성에 액세스하는 것입니다.

+0

이것은 정확히 내가 찾고있는 것입니다. 감사! – Lance

2

이 방법을 시도하십시오.이 방법은 회전 할 때 자동으로 호출됩니다. 도움이 될 수 있기를 바랍니다. 감사.

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 

    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) { 
     NSLog(@"%f,%f",self.view.frame.size.width,self.view.frame.size.height); 
    } else if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { 
     NSLog(@"%f,%f",self.view.frame.size.width,self.view.frame.size.height); 
    } 
} 
+0

나를 위해이 문제는보기 viewcontroller보기의 하위보기의 하위보기에서 같이보기 컨트롤러에서 여러 수준 아래로 문제입니다. View Controller에서이 정보를 합리적으로 볼 수있는 방법을 모르겠습니다. – phosphoer