ZSWRoundedImage
ZSWRoundedImage 是 UIImage
的扩展,用于创建具有任何圆角的可变尺寸图像。此库目前不支持 Objective-C,因为它是我在学习 Swift 的应用程序的一部分。
为什么是图像呢?
您可能正在想,“为什么不直接对 CALayer
进行圆角处理而不是设置背景图像?”这需要剪裁内容并添加透明度,这两者都会损害性能。使用背景图像允许创建全不透明的视图,同时保留圆角视觉效果。
用法
这为 UIImage 添加了一个公开方法
extension UIImage {
public static func imageWithRoundedCorners(
roundedCorners: UIRectCorner,
cornerRadius: CGFloat,
resizingDirection: RoundedResizingDirection,
foregroundColor: UIColor,
backgroundColor: UIColor,
borderColor: UIColor? = default,
borderWidth: CGFloat? = default
) -> UIImage
}
首先,导入库
import ZSWRoundedImage
并将图像设置在 UIImageView
中
imageView.image = UIImage.imageWithRoundedCorners(
.allCorners, cornerRadius: 10.0,
resizingDirection: .both,
foregroundColor: UIColor.black,
backgroundColor: UIColor.clear
)
调整大小方向
一个常见的界面设计需求是背景像药丸一样。你可以通过指定一个 cornerRadius
值等于你显示高度的一半来创建它。默认情况下,此库添加了一个平铺像素,使得图像可以在任何方向上调整大小;这个平铺像素破坏了药丸的干净圆形外观。为了消除这个平铺像素,传递 .horizontal
或 .vertical
作为调整大小方向,它将不包括其中一个。
为什么这不是一个 UIImage init 方法?
这是一个很好的问题,好奇的探索者!这并不是一个 init 方法,因为创建一个可调整大小的 UIImage
需要初始化和再次复制参数的组合。Swift 的 init 方法不能改变返回值或向 self 赋值。这被记录在 23128341。
UIBezierPath
?
你为什么创建自己的 追求边缘干净和视网膜图像。UIBezierPath 系统提供的圆角矩形函数由于在非整数点上绘制,所以非常差劲的反走样。这个库的主要目的是绘制非常干净的线条,因此需要一个自定义的路径。
安装
ZSWRoundedImage 可以通过 CocoaPods 来获取。要安装它,只需在你的 Podfile 中添加以下行
pod "ZSWRoundedImage", "~> 1.1"
许可证
ZSWRoundedImage 遵循 MIT 许可证。更多信息请见 LICENSE 文件。