ios - intentos - me olvide el codigo de restricciones del iphone
¿Puedo detectar si la pantalla es regular o compacta desde el código en iOS 8? (3)
Desde la página que has vinculado (énfasis añadido):
La clase
UITraitCollection
se utiliza para describir una colección de rasgos asignados a un objeto. Los rasgos especifican la clase de tamaño, la escala de visualización y el idioma para un objeto en particular. Las clases que admiten el protocoloUITraitEnvironment
(como UIViewController y UIView) poseen una colección de rasgos. Puede recuperar la colección de rasgos de un objeto y realizar acciones cuando esos rasgos cambien.
Como se indica en las referencias vinculadas desde allí, puede implementar el método traitCollectionDidChange
en su vista o ver el controlador para averiguar cuándo cambia la clase de tamaño.
iOS 8 introduce nuevos tipos de pantalla que se pueden usar en Storyboards y en Xibs, ¿puedo detectar estos tipos en código? Si es así, ¿cómo?
Aquí puede encontrar más información al respecto https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS8.html
También puede detectar el tipo de dispositivo y su orientación utilizando la siguiente extensión:
extension UITraitCollection {
var isIpad: Bool {
return horizontalSizeClass == .regular && verticalSizeClass == .regular
}
var isIphoneLandscape: Bool {
return verticalSizeClass == .compact
}
var isIphonePortrait: Bool {
return horizontalSizeClass == .compact && verticalSizeClass == .regular
}
var isIphone: Bool {
return isIphoneLandscape || isIphonePortrait
}
}
Sí, UIViewControllers ahora tiene una propiedad traitCollection
que contiene información desde el idioma del dispositivo, a las clases de tamaño actuales y más ... Además, puede implementar la func traitCollectionDidChange(previousTraitCollection: UITraitCollection)
método func traitCollectionDidChange(previousTraitCollection: UITraitCollection)
para recibir notificaciones cuando la clase de tamaño (o cualquier rasgo) ha cambiado (como cuando el usuario gira el dispositivo en un iphone). Las propiedades de UITraitCollection que está buscando son horizontalSizeClass
y verticalSizeClass
.. He aquí una reference
Espero que ayude