Swift中@IBDesignable/@IBInspectable的使用

原创 2016年08月30日 14:40:59

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中用@前缀使用。
版权声明:本文为博主原创文章,转载请注明

新学到的两个关键字IBInspectable / IBDesignable

两个关键字用法很简单,但是感觉如果使用得当,可以节省很多时间 IBDesignable 主要作用:可以显示出来你使用代码写的界面。 使用方法:在swift里,@IBDesignable关键...
  • ralbatr
  • ralbatr
  • 2015年06月16日 15:59
  • 9949

@IBDesignable和@IBInspectable

最近一直在看苹果公司提供的两本swift官方教程电子书,一部是《The Swift Programming Language》,另一部是《Using Swift With Cocoa and Obje...

IBInspectable / IBDesignable (只能用于Swift?)

IBInspectable IBInspectable 属性提供了访问旧功能的新方式:用户自定义的运行时属性。从目前的身份检查器(identity inspector)中访问,这些属性在 Int...

如何让UITableView的section headerView不悬停

在项目开发过程中使用UITableView时,UI设计的列表页中,每一个cell的头部会有一条粗的间隔线,隔开每个cell,这个时候有几个问题:1.如果让线与cell设为一体,当点击cell时,线会与...

iOS常见问题总结(一)

iOS常见问题

Objective-C(Swift) IBDesignable/IBInspectable

iOS8新特性IBDesignable/IBInspectable,利用运行时机制,可以把属性映射到XIB上了,同时我们UI类的自定义属性也可以映射上去,可以直接在XIB或者Storyboard中设置...

@IBDesignable和@IBInspectable

原文   http://blog.csdn.net/tounaobun/article/details/39890667 最近一直在看苹果公司提供的两本swift官方教程电子书,一...

IBInspectable / IBDesignable

IBInspectable IBInspectable 属性提供了访问旧功能的新方式:用户自定义的运行时属性。从目前的身份检查器(identity inspector)中访问,这些属性在 Int...

Xcode8.1中@IBDesignable以及@IBInspectable不能自动刷新的解决办法

Xcode中的@IBDesignable和@IBInspectable关键字出来也有一段时间了,目的是当用户改变View属性时InterfaceBuilder的界面里可以得到即时刷新反馈.这无疑对于A...
  • mydo
  • mydo
  • 2016年11月06日 13:31
  • 1399

谈不完美的IBDesignable/IBInspectable可视化效果编程

我们好像慢慢地习惯了“理想很丰满,现实很骨感”这样顺序这样的转折这样常态,那么如果是“现实很丰满,理想很骨感”,我们能接受吗?现实丰满可以,但是理想很骨感那就不要将就了。就像薛之谦希望是能通过“丑八怪...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift中@IBDesignable/@IBInspectable的使用
举报原因:
原因补充:

(最多只允许输入30个字)