我已经开发了一个DeviceLayout库enter link description here

此库提供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()
}在运行时模拟器或设备中应用的每设备常量属性
我的问题是
在选择设备时,是否可以使用IBInspectable或IBDesignable进行更新渲染?
我想在设备类型更改时检查Storyboard或Xib文件中的渲染

发布于 2017-01-30 02:57:18
是的,约束(无论是您的子类还是标准约束)与designable视图完全兼容。显然,它要求您的@IBDesignable视图正确处理大小的变化,但我们通常会这样做。
例如,如果您有一个添加圆形CAShapeLayer的designable视图,则只需在适当的init方法中添加一次CAShapeLayer,但在layoutSubviews方法中更新该层的path。例如,请参见CircleView。
但是,如果您正确处理大小布局更改,则也会自动适当地处理约束。
https://stackoverflow.com/questions/41923615
复制相似问题