美文网首页
button storyboard、xib中属性实时渲染

button storyboard、xib中属性实时渲染

作者: ekg | 来源:发表于2016-01-14 14:32 被阅读645次

    先上效果

    自定义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方法执行完后再执行,也就是说,我在所有属性拿到值后做了自己的处理逻辑。

    相关文章

      网友评论

          本文标题:button storyboard、xib中属性实时渲染

          本文链接:https://www.haomeiwen.com/subject/gtackttx.html