button storyboard、xib中属性实时渲染

先上效果

自定义button实时渲染

操作:

  • 1 引入YCButton.h,.m文件 或 自定义
  • 2 拖个button到面板,将controller改成YCButton,
  • 3 之后在属性面板便可以看到自定义属性,默认边框效果是关闭的,此时其他自定义属性即使设置了也不会起作用,必须先开启边框,边框宽度默认是1,颜色lightgray
  • 4 圆角效果默认关闭,开启后默认圆角值是10,改变属性会实时显示效果,其他button属性都可以设置

自定义属性:

Board Enable: 是否开启边框, 默认关闭 (必须开启其他属性才能生效)
Board Color: 边框颜色, 默认浅灰色
Board With: 边框宽度, 默认为1
Masks To Bounds: 是否开启圆角, 默认关闭 (必须开启,圆角值才能生效)
Corner Radius: 圆角值, 默认为10

实现原理:

IB_DESIGNABLE

在定义类的前面加上IB_DESIGNABLE宏,确保该控件在xib或storyboard上可以实时渲染

IBInspectable

在定义类的属性前面加上IB_DESIGNABLE宏,确保该属性在xib或storyboard上可以展示

代码:YCButtonDemo

教程:如何设计一个 iOS 控件?(iOS 控件完全解析)

我做的改变:
如果只是单纯的要属性值和实时渲染,直接覆写setter方法便可以;为了控件初始化后具有默认效果,我重写了- (void)drawRect:(CGRect)rect 方法,该方法在uitbutton中会在属性的set方法执行完后再执行,也就是说,我在所有属性拿到值后做了自己的处理逻辑。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容