这里都是在一个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
设置的颜色是UIColor
,layer
要的颜色是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