2016-09-15 12 views
0

У меня есть средство визуализации, которое основано на UIView. Я могу увидеть изменение анимации при повороте устройства, ведущего вызов layoutSubviews несколько раз. Есть ли способ обнаружить анимацию представления при завершении работы устройства.IOS, как определить, что ориентация завершена

Это layoutSubview позвонить

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

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

ответ

0

Вы можете захватить конец UIViewController вращения с помощью обработчика завершения координатора в ViewWillTransitionToSize методе:

+0

Я переопределение UIView не UIViewController – LittleFunny

+0

@Simon изменения ориентации обрабатывается 'UIViewController' и его подзонам говорят изменить размер, они сами, чтобы не знать, почему. Вы можете использовать обработчик завершения для вызова метода в 'UIView', иначе очищенный де-связанный путь должен состоять в том, чтобы опубликовать событие в обработчике и подписать подзаголовок' UIView' для события, вы также можете использовать ' NSNotificationCenter.DefaultCenter' – SushiHangover

+0

Спасибо, я посмотрю на это. – LittleFunny

0

взглянуть на viewWillTransitionToSize.

UIKit вызывает этот метод, прежде чем изменять размер представленного представления контроллера. Вы можете переопределить этот метод в своих собственных объектах и ​​использовать его для выполнения дополнительных задач, связанных с изменением размера. Например, контроллер контейнера может использовать этот метод для переопределения признаков встроенных контроллеров дочерних представлений. Используйте предоставленный объект координатора для анимации любых сделанных вами изменений.

refer apple documentation для получения более подробной информации !!