Estoy tratando de implementar el nuevo viewWillTransitionToSize
método que se ha introducido en iOS 8 (todos los demás métodos de rotación han quedado en desuso). Me gustaría saber cuál es el equivalente didRotateFromInterfaceOrientation
ahora, ya que hay una serie de tareas de limpieza que debemos realizar y no puedo ver un bloque al que podamos asignar para UIViewControllerTransitionCoordinator
que se nos llame cuando se haga la 'transición' a un nuevo Acabados de tamaño. Gracias.
ios
iphone
objective-c
ios8
extraño
fuente
fuente
- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; // do whatever } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) { }]; [super viewWillTransitionToSize: size withTransitionCoordinator: coordinator]; }
[UIDevice currentDevice].orientation
. También puede canalizar esto enUIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)
oUIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)
. ¡Espero que esto ayude!La versión rápida de la respuesta por extraño
fuente
print
nada en mi registro. Supongo que porque este método no se llama. ¿Se te ocurre algo más que deba enchufarse para que esto funcione?iOS 10.3 y Swift 3
fuente
La respuesta aceptada en Swift 3 :
Funciona bien para mí 👍
fuente
let orient = newCollection.verticalSizeClass switch orient { case .compact: print("Lanscape") // Do something default: print("Portrait") // Do something else }
Como la pregunta era: ¿cuál era el equivalente de
didRotateFromInterfaceOrientation
Pensé que contribuiría con el siguiente código:
Estaba probando en un iPhone en el simulador, pero mis declaraciones de impresión no se ejecutarán si pruebo usando el iPad ya que la colección de rasgos no cambiará.
Esto es extraño porque esto es exactamente lo que Apple recomienda :
fuente
[[UIApplication sharedApplication] statusBarOrientation]
está obsoleto en iOS9, debe probarlo contra UITraitCollection para varios dispositivos.fuente
En el Ipad no hay cambio de colección de rasgos, así que así es como se detecta la rotación desde el inicio y la finalización. Aquí está la sintaxis de Swift 5:
fuente