Swift中@IBDesignable/@IBInspectable的使用

IB可视化属性调节视图-@IBDesignable/@IBInspectable的使用

在工程中新建一个swift类(继承UIView),将它与某个view关联起来。
在文件中添加下面的代码
//可以用于画圆
import UIKit
/// 学习在IB中直接设置属性,并且实时改变(学习来源于segmentFault的在OC和swift中使用IBDsignable/IBInsepectable[检查]https://segmentfault.com/a/1190000003703119)

@IBDesignable //要使用这个才可以直接在在IB中设置属性 相当于OC中的IB_DESIGNABLE(宏)

示例代码如下:

class TXView: UIView {
@IBInspectable var cornerRadius:CGFloat = 0.0{     // 前面的为属性名字 初始值
didSet{               //【需要学习:属性监控器willset监控属性改变值之前做点什么,didSet监控改变后做些什么,通常直接跟在属性后 详情学习:           学习参考:http://www.hangge.com/blog/cache/detail_519.html】
layer.cornerRadius=cornerRadius //设置属性 【??layar干嘛的】
layer.masksToBounds = true//允许剪切
}
}
//边框颜色
@IBInspectable var borderColor:UIColor=UIColor(){
didSet{
layer.borderColor = borderColor.CGColor
}
}
//设置边框宽度
@IBInspectable var borderWidth:CGFloat=0.0{
didSet{
layer.borderWidth = borderWidth
}
}
/*总结:
需要在IB中实时改变属性时(即属性可视化),先在相应的UI控件类前加上@IBDesignable ,再在类中加入检查@IBInspectable设置属性初始值,必须加上属性改变监控器didSet部分,再设置相关的属性及必要代码。
注意,如果不像上面操作,也可以直接在检查器中添加属性,只是在运行时才可以看见。
*/
}
写入以上代码后:返回到IB中,在右边的检查器会出现如下新的可以调节的自定义属性(红色圈住部分),比如将一个正方形的view的角半径设置为50就可以得到一个圆。
如截图:

通过以上可以学习到:
1. 怎样将矩形按钮控件变成圆型
2. 将属性设置为为可视化改变,并且可以实时查看。
3. willSet与didSet的作用。
4. 提示:很多OC中的代码(如某些宏的定义)在swift中用@前缀使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值