2016-09-15 2 views
0

UIView를 기반으로하는 렌더러가 있습니다. layoutSubviews 호출을 여러 번 유도하는 장치의 회전을 수행 할 때 애니메이션 변경 사항을 볼 수 있습니다. 장치를 회전 할 때보기의 애니메이션을 감지하는 방법이 있습니까? IOS 방향 감지 방법 완료

public override void LayoutSubviews() 
{ 
     base.LayoutSubviews(); 

     var size = base.Frame; 
     Element.OnSizeChanged((int) size.Width, (int) size.Height); 
} 

답변

0

:

public override void ViewWillTransitionToSize(CGSize toSize, IUIViewControllerTransitionCoordinator coordinator) 
{ 
    coordinator.AnimateAlongsideTransition(
     (IUIViewControllerTransitionCoordinatorContext obj) => { }, 
     (IUIViewControllerTransitionCoordinatorContext obj) => 
    { 
     Console.WriteLine("Transition Completion"); 
    }); 
    base.ViewWillTransitionToSize(toSize, coordinator); 
} 
+0

내가 방향 변경 @ 사이먼하지 UIViewController에 UIView의 – LittleFunny

+0

을 무시하고는'UIViewController'에 의해 처리되고 하위 뷰의 크기를 조정하라는 말을 듣고, 이유를 알지 못하게합니다. 완성 처리기를 사용하여 'UIView'에서 메소드를 호출 할 수 있습니다. 그렇지 않으면 클리너 결합 해제 된 방식으로 처리기에 이벤트를 게시하고 하위 클래스의 'UIView'가 이벤트를 구독하도록 할 수 있습니다. NSNotificationCenter.DefaultCenter' – SushiHangover

+0

고맙습니다. – LittleFunny

0

viewWillTransitionToSize에 좀 걸릴 layoutSubview 호출을합니다.

UIKit은 제공된보기 컨트롤러보기의 크기를 변경하기 전에이 메서드를 호출합니다. 이 메서드는 사용자 개체에서 재정의하고 크기 변경과 관련된 추가 작업을 수행하는 데 사용할 수 있습니다. 예를 들어, 컨테이너 뷰 콘트롤러는,이 메소드를 사용해, 포함 된 아이 뷰 콘트롤러의 형을 오버라이드 (override) 할 수 있습니다. 제공된 코디네이터 객체를 사용하여 변경 사항을 애니메이션으로 만듭니다.

refer apple documentation 자세한 내용은 !!

당신은 ViewWillTransitionToSize 방법 내에서 코디네이터 완료 핸들러를 통해 UIViewController 회전의 끝을 캡처 할 수 있습니다