
2. 但是可以通过runtime.h运行时来为分类绑定属性.
3. 正常写上属性, 然后为属性绑定set / get方法.
日常开发过程中我们经常碰到要给分类添加自定义属性和变量的,下面通过关联对象给分类添加属性,也是runtime的实际应用之一,非常实用。(关于runtime的使用还有很多,这里只简单记录一下利用runtime给分类添加属性)。
关联Runtime提供了下面几个接口:
void objc_setAssociatedObject(id object, const void * key, id value, objc_AssociationPolicy policy)
id objc_getAssociatedObject(id object, const void * key)
void objc_removeAssociatedObjects(id object)
id object被关联的对象
const void * key:关联的key,要求唯一
id value:关联的对象
objc_AssociationPolicy policy:内存管理策略
1.给UILabel添加一个 竖直方向的verticalText,如下图所示:
新建一个继承UILabel的Category,并添加一个成员变量
.h文件
m.文件
调用时就直接使用点语法:
_textLabel.verticalText = @"厉害了,我的国"
2.给UIButton添加一个扩大点击区域的实例方法
新建一个继承UIButton的Category,并添加一个实例方法
.h文件
.m文件
创建button并调用:
[button setTouchExpandEdgeWithTop:30 right:30 bottom:30 left:30]
点击button的上下左右各30pt,button也会有响应。
Demo链接
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)