storyboard实时渲染扩展的属性

使用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,就说明编译完成了。

实时渲染的效果如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,252评论 4 61
  • 2017年11月6日 星期一 天气晴 贵阳 14℃~26℃ 最近几天上来贵阳学习还是有点不适应,写日记都没之前...
    陈贺雄阅读 232评论 1 1
  • 人生真的是由某些偶然、无心插柳的事儿串联而成,她在前方不远处等着你,去邂逅那场为你安排的妙不可言的旅程。我是一名理...
    GTwanwan阅读 1,766评论 5 5
  • (一) 放暑假了,带着孩子回到了离别许久的家乡。趁着傍晚天气凉爽,带孩子出去走走,顺便让...
    雅灵看世界阅读 213评论 0 1