构建状态
分支 | 构建状态 |
---|---|
开发 | |
主分支 |
描述
AvatarImageView
是一个可定制的 UIImageView
子类,用于显示用户个人资料图片。如果没有提供个人资料图片,它将回退到用户的首字母和随机的背景颜色。
这个库是受 bachonk/UIImageView-Letters 启发并打算用 Swift 重写的。
用法
要设置 AvatarImageView
,需要设置一个符合 AvatarImageViewDataSource
协议的 dataSource
。可选的,可以设置一个符合 AvatarImageViewConfiguration
协议的 configuration
。默认配置将显示一个正方形图片;如果没有提供个人资料图片,它将使用系统字体在随机背景颜色上绘制首字母。
AvatarImageViewDataSource
包含以下成员。所有都有一个默认实现,因此是可选的。
var name: String { get }
- 默认:返回""
var avatar: UIImage? { get }
- 默认:返回nil
var bgColor: UIColor? { get }
- 默认:返回nil
var initials: String { get }
- 默认:返回从名字计算出来的首字母。var avatarId: Int { get }
- 默认值:返回名称和首字母的组合的异或哈希值。
AvatarImageViewConfiguration
包含以下成员。所有成员都有默认实现,因此是可选的。
var shape: Shape { get }
- 默认值:返回.Square
var textSizeFactor: CGFloat { get }
- 默认值:返回0.5
var fontName: String? { get }
- 默认值:返回nil
var bgColor: UIColor? { get }
- 默认值:返回nil
。在AvatarImageViewDataSource
中的bgColor
将优先于这个值。var textColor: UIColor { get }
- 默认值:返回.white
。
更多信息请参阅 文档。
随机背景色是基于每个独特用户的 avatarId
生成的,因此如果您在应用的不同部分有 AvatarImageView
,特定用户的背景色将在这两部分保持一致。
默认情况下,图片视图可以作为一个正方形或圆形来绘制。如果您想要自定义形状,甚至可以指定一个蒙版图片。这些设置在 AvatarImageViewConfiguration
中完成。以下是首字母绘制在不同形状中的示例。
以下是一个示例,当 dataSource
提供个人资料图片,并且 configuration
设置为圆形时。
它非常适合自定义字体!
...并且也与 UITableView
非常兼容。
示例项目
请参阅此存储库中的示例项目,以实现所有上述用例。如果您发现任何错误,请打开 GitHub 问题!
注意事项
-
在设置
dataSource
之前,请始终设置configuration
。如果不这样做,您需要手动调用refresh()
以正确渲染视图。 -
当实现
AvatarImageViewDataSource
和AvatarImageViewConfiguration
协议时,您需要显式地为任何是可选的协议成员定义类型,否则 Swift 会崩溃。
例如,AvatarImageViewConfiguration
中有一个名为 var fontName: String?
的类型,默认返回 nil
。要在 struct
中实现它,请按照以下方式定义:
struct Config: AvatarImageViewConfiguration {
var fontName: String? = "Futura-Medium"
}
定义为
struct Config: AvatarImageViewConfiguration {
var fontName = "Futura-Medium"
}
...将不会工作 :(
文档
要求
AvatarImageView 至少需要 iOS 8。
安装
AvatarImageView 通过 CocoaPods 提供使用。要安装它,将以下行添加到您的 Podfile 文件中:
use_frameworks!
# Swift 2.2
pod "AvatarImageView", '1.1.1'
# Swift 2.3
pod "AvatarImageView", '~> 1.2.1'
# Swift 3.0
pod "AvatarImageView", '2.0.0'
# Swift 4.0
pod "AvatarImageView", '~> 2.1.0'
# Swift 4.2
pod "AvatarImageView", '~> 2.2.0'
发行说明
2.2.0
增加了 Swift 4.2 支持
2.1.1
修复了不合理的测试套件和测试警告
2.1.0
迁移到 Swift 4
2.0.3
增加了一个基准偏移配置属性,可能需要用于自定义字体
2.0.2
修复了一个问题,即使配置中指定了圆形,也可能不会始终以圆形显示个人资料图片。
2.0.1
修改了 init(frame:)
使其为公共。似乎在早期由于错误的合并而反向。
2.0.0
将代码迁移到 Swift 3.0。
1.2.1
设置部署目标为 8.0。在此版本发布之后,将不会再为 Swift 2.3 发布新功能或补丁。
1.2.0
将代码迁移到 Swift 2.3。
1.1.1
修改了 init(frame:)
使其为公共。
1.1.0
改进了随机颜色生成器。现在它从首字母和名字生成一个哈希值,然后使用这个哈希值作为种子生成随机颜色,因此对于每个唯一用户总是相同的颜色。
1.0.0
初始发布
作者
Ayush Newatia,[email protected]
许可
AvatarImageView 在 MIT 许可下可用。更多信息请参阅 LICENSE.md 文件。