这里都是在一个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