美文网首页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