AvatarImageView 2.2.0

AvatarImageView 2.2.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released上次发布2018年10月
SPM支持 SPM

Ayush Newatia维护。



MIT Licence Pod Version Swift Version Twitter

构建状态

分支 构建状态
开发 Build Status
主分支 Build Status

描述

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 中完成。以下是首字母绘制在不同形状中的示例。

Square Initials Circle Initials Mask Initials

以下是一个示例,当 dataSource 提供个人资料图片,并且 configuration 设置为圆形时。

Circle Profile Pic

它非常适合自定义字体!

Custom Font

...并且也与 UITableView 非常兼容。

Table View Pics

示例项目

请参阅此存储库中的示例项目,以实现所有上述用例。如果您发现任何错误,请打开 GitHub 问题!

注意事项

  1. 在设置 dataSource 之前,请始终设置 configuration。如果不这样做,您需要手动调用 refresh() 以正确渲染视图。

  2. 当实现 AvatarImageViewDataSourceAvatarImageViewConfiguration 协议时,您需要显式地为任何是可选的协议成员定义类型,否则 Swift 会崩溃。

例如,AvatarImageViewConfiguration 中有一个名为 var fontName: String? 的类型,默认返回 nil。要在 struct 中实现它,请按照以下方式定义:

struct Config: AvatarImageViewConfiguration {
    var fontName: String? = "Futura-Medium"        
}

定义为

struct Config: AvatarImageViewConfiguration {
    var fontName = "Futura-Medium"
}

...将不会工作 :(

文档

文档可在 CocoaDocs 上获得

要求

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