je développer une DeviceLayout
Bibliothèque enter link description hereIBDesignable rendu sous-classe NSLayoutConstraint
cette bibliothèque fournissent DeviceLayoutConstraint
à une valeur constante AutoLayout par taille de l'appareil
import UIKit
import Device
class DeviceLayoutConstraint: NSLayoutConstraint {
@IBInspectable var inch3_5: CGFloat = 0.0 { didSet { updateConstant(size: .screen3_5Inch, constant: inch3_5)}}
@IBInspectable var inch4: CGFloat = 0.0 { didSet { updateConstant(size: .screen4Inch, constant: inch4)}}
@IBInspectable var inch4_7: CGFloat = 0.0 { didSet { updateConstant(size: .screen4_7Inch, constant: inch4_7)}}
@IBInspectable var inch5_5: CGFloat = 0.0 { didSet { updateConstant(size: .screen5_5Inch, constant: inch5_5)}}
@IBInspectable var inch7_9: CGFloat = 0.0 { didSet { updateConstant(size: .screen7_9Inch, constant: inch7_9)}}
@IBInspectable var inch9_7: CGFloat = 0.0 { didSet { updateConstant(size: .screen9_7Inch, constant: inch9_7)}}
@IBInspectable var inch12_9: CGFloat = 0.0 { didSet { updateConstant(size: .screen12_9Inch, constant: inch12_9)}}
fileprivate func updateConstant(size: Size, constant: CGFloat) {
if size == deviceSize() {
self.constant = constant
layoutIfNeeded()
}
}
open func deviceSize() -> Size {
return Device.deviceSize
}
open func layoutIfNeeded() {
self.firstItem.layoutIfNeeded()
self.secondItem?.layoutIfNeeded()
}
}
fileprivate extension Device {
static let deviceSize = Device.size()
}
par dispositif propriété constante appliquée dans le simulateur d'exécution ou appareil
Mon estion est
Est-il possible de rendre la mise à jour en utilisant IBInspectable ou IBDesignable lorsque vous sélectionnez Périphérique?
Je veux vérifier le rendu dans le fichier Storyboard ou Xib lorsque le type de l'appareil modifié
Complètement sans rapport, mais je ne suis pas sûr que je suggérerais d'appeler 'layoutIfNeeded' dans' updateConstraint'. J'appellerais probablement 'setNeedsLayout'. Si vous mettez à jour un certain nombre de constantes, vous ne voulez pas déclencher trop de cycles de mise en page redondants. – Rob