多种方式开启StoryBoard的实时渲染(控制圆角和边框)

字数272  阅读523  评论10 

这里都是在一个UIImageView上进行各种操作

设置圆角

纯代码

import UIKit

@IBDesignable
class RoundImageView: UIImageView {
    //圆角
    @IBInspectable var cornerRadius:CGFloat = 0.0{

        didSet{
            layer.cornerRadius = cornerRadius
            layer.masksToBounds = (cornerRadius > 0)
        }
    }
}

里面使用了CALayer的属性masksToBounds,代表是否剪切图层边界,默认为false,当我们设置为true之后,就可以按照设置的cornerRadious裁切出想要的尺寸。

StoryBoard

我们可以通过 Xcode 提供的 User Defined Runtime Attributes来设置圆角


效果图

设置边框

首先要了解一点,Layer需要的颜色是CGColor而不是UIColor

纯代码

import UIKit

@IBDesignable
class RoundImageView: UIImageView {

    //对图形的边框进行设置
    @IBInspectable var borderWidth: CGFloat = 0.0{
        didSet{
            layer.borderWidth = borderWidth
        }
    }
    //对边的颜色设置
    @IBInspectable var borderColor:UIColor!{
        didSet{
            layer.borderColor = borderColor.CGColor
        }
    }

}

StoryBoard

因为User Defined Runtime Attributes设置的颜色是UIColorlayer 要的颜色是CGColor,我们需要做一些额外的处理。

extension CALayer {
    var borderUIColor: UIColor {
        get {
            return UIColor(CGColor: self.borderColor!)
        }
        set {
            self.borderColor = newValue.CGColor
        }
    }
}

在 User Defined Runtime Attributes中直接调用


效果图



转自:http://www.jianshu.com/p/5e8a0407dfd2