iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果

今天无意get到一个新的开发技能(苹果自带的SDK有提供),可以让自定义的View在Storyboad或者Xib看到自己在自定义View.h新增的自定义属性,并且对属性进行参数赋值后动态刷新查看效果。

先啰嗦一下,自己在get这个技能之前经常需要将自定义View在Xib上进行关联,But,关联之后麻烦来了,上面的自定义参数无法直接设置,需要到.m文件手动设置,然后再common+R一下才能看效果,开发效率低了不少。该技能只需进行简单的设置就可以直观的看到设置好的参数所展现出来的效果如何,大大提高了开发效率。

备注:我自己新建了一个TestView

首先,在TestView.h的类名前添加IB_DESIGNABLE;

然后,在新增的属性testColor属性类型前面添加IBInspectable声明;

最后,在TestView.m重写set方法即可。

上图上图:


TestView.h

iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果_第1张图片


TestView.m

iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果_第2张图片


xib关联文件

iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果_第3张图片


参数赋值

iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果_第4张图片

iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果_第5张图片


到此也就完成了。惊喜不惊喜?意外不意外?

如果不能动态刷新,重启一下XCode或者开启Automatically Refresh Views:

iOS_利用IBInspectable与IB_DESIGNABLE实现自定义类在Storyboad并动态展示设置效果_第6张图片

后话:细心的童鞋可能会注意到,对自定义参数设置了value之后,KeyPath那边也会同时展示。亲测,在自定义属性还原默认值后KeyPath对应的自增属性也会被移除。

注意:对类添加了IB_DESIGNABLE后,又移除了,只要XCode不关闭,即使清除了XCode缓存依然能动态刷新,除非关闭XCode。

你可能感兴趣的:(iOS)