iOS 热重载(storyboard/xib 控件可视化开发 )
热重载的意义
写 UI 布局时,会花费大量时间,而往往改动一个属性就要重新编译运行看效果,编译所花费的时间是巨大的,这些耗时都是无意义的,所以如果 Xcode 可以立马刷新我们的 UI 代码,是很有意义的。而热重载就是一种解决方案
IBInspectable 关键字
将属性用 IBInspectable
关键字修饰可以让该属性在 xib/storyboard 中可见,具体功能实现只要重写 setter
方法即可
OC 版本:
@property (nonatomic, assign) IBInspectable CGFloat radius;
- (void)setRadius:(CGFloat)radius {
self.layer.cornerRadius = radius;
self.clipsToBounds = radius;
}
swift 版本:
@IBInspectable var radius: CGFloat = 0 {
didSet {
layer.cornerRadius = radius
clipsToBounds = radius == 0 ? false : true
}
}