У меня есть разработать DeviceLayout
библиотека enter link description hereIBDesignable рендеринг NSLayoutConstraint подкласс
Библиотека позволяет DeviceLayoutConstraint
установить AutoLayout константы за размер устройства
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()
}
на устройство постоянная свойство применяется во время выполнения имитатора или устройство
My qu estion is
Возможно ли рендеринг рендеринга с использованием IBInspectable или IBDesignable при выборе устройства?
Я хочу проверить рендеринг в Раскадровка или XIb файл, когда тип устройства изменен
Полностью несвязанный, но я не уверен, что предлагаю вызвать 'layoutIfNeeded' в' updateConstraint'. Я бы назвал 'setNeedsLayout'. Если вам приходится обновлять кучу констант, вы не хотите запускать слишком много избыточных циклов компоновки. – Rob