ZSWRoundedImage 1.1

ZSWRoundedImage 1.1

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2019年1月
SPM支持 SPM

Zachary West维护。



ZSWRoundedImage

Version License Platform

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 文件。