iOS 在user defined runtime attributes(用户定义的运行时属性)改变UI

user defined runtime attributes(用户定义的运行时属性)是一个非常强大但是几乎没用过的功能

它在这里:


我们先看一下它的他用处,在Main.StoryBord里面添加一个Lable和一个TextFile:


在ViewController里面我没有添加任何对它们的操作,甚至没有拖线链接关系:



但是我们看一下运行效果:

我们只要在user defined runtime attributes(用户定义的运行时属性)里面进行操作就可以达到编写控件UI的目的
接下来我们看一下具体流程:
这是进来的两个控件:


运行一下一切正常:



接下来我们对这两个空间的user defined runtime attributes进项编辑:






注意:在user defined runtime attributes(用户定义的运行时属性)是没有报错机制的,我们必须保障每一个属性都要写正确(尤其是大小写)和每个Type的数据类型选择正确
下面是一些可用的Attribute Types与其相对应的数据类型
Boolean– BOOL
Number NSNumber * or any numeric scalar, e.g. NSInteger
String– NSString *
Point  – CGPoint
Size  – CGSize
Rect– CGRect
Range  NSRange
Color– UIColor *




运行一下:


好像有问题,textFile的biorderColor没有改变,原因是IB不支持部分数据类型,例如我要配置CALayer的 border coloer 和 shadow color,他们都是CGColorRef类型的,并不能直接在User Defined Runtime Attributes进行配置。这样我们就要给CALayer增加一个分类(cateGories),让它支持这个数据类型。
注:在oc中为了增强已有类的功能,我们经常使用分类。使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展。但是在swift中没有分类这个概念了。取而代之的是扩展(Extensions)。
如图:
点击command+N 



我们在创建的这个扩展里面写一个继承于CALayer的类:



再次运行一下试试:



当然user defined runtime attributes并不只是有这么简单的方法!更多功能还需要我们自己去挖掘!






注:转载请注明出处,http://blog.csdn.net/lg_sun/article/details/50519272


附:代码地址:https://github.com/SLGgit/LG_runTime-UI





  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值