美文网首页iOS Developer
storyboard实时渲染扩展的属性

storyboard实时渲染扩展的属性

作者: 云抱住阳光太阳没放弃发亮 | 来源:发表于2016-02-26 16:47 被阅读580次

    使用storyboard不仅仅是为了少写代码,最重要的是能实时预览效果,如果有一些界面上细节的微调每次都重启项目比较浪费时间。

    可惜storyboard不是万能良药,很多属性在Inspectable中是没有的,还是要在代码中进行设置,后期维护起来成本也会增加。

    不过Xcode还是给我们留下了解决办法。以图片圆角为例子,可以用这样的方式来设置:


    运行效果:


    但是这不是实时渲染啊,运行后才可以看到结果,如果我希望微调数据看效果,还是要设置一次运行一次。

    还好Xcode还留给我们更好的方案~流程如下:

    1.自定义一个类,继承要使用的控件,这里是UIImageView

    2.在class外面加入关键字 @IBDesignable

    3.将需要实时渲染的属性写为计算属性,加入关键字 @IBInspectable

    例如:

    import UIKit
    
    @IBDesignable
    class MyImageView: UIImageView {
    
        @IBInspectable var 圆角半径: CGFloat = 0 {
            didSet {
                self.layer.cornerRadius = 圆角半径
                self.layer.masksToBounds = 圆角半径 > 0
            }
        }
        
    }
    

    当然swift现在中文支持还是很让我开心的。

    4.更改对应控件的Custom Class

    等待编译,当Designables 显示Up to date,就说明编译完成了。

    实时渲染的效果如下:

    相关文章

      网友评论

        本文标题:storyboard实时渲染扩展的属性

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