An extension that generates letter-based avatars/placeholders
LetterAvatarKit
LetterAvatarKit
provides an UIImage
extension for generating letter-based avatars/placeholders. There are a few images showing what you can achive by using this framework:
Requirements
- iOS 8+
- tvOS 9+
- Swift 4.0+
Features
- Ease of use
- Flexible API
- Builder pattern
- Circle/Square/Bordered image
- Flat UI colors
- tvOS support
Installation
CocoaPods
LetterAvatarKit
is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "LetterAvatarKit", "1.2.4" # Swift 5.0+, Xcode 12
pod "LetterAvatarKit", "1.2.3" # Swift 5.0+, Xcode 11
pod "LetterAvatarKit", "1.1.7" # Swift 4.2
pod "LetterAvatarKit", "1.1.5" # Swift 4.0
Carthage
Add this to Cartfile
github "vpeschenkov/LetterAvatarKit" == 1.2.4 # Swift 5.0+, Xcode 12
github "vpeschenkov/LetterAvatarKit" == 1.2.3 # Swift 5.0+, Xcode 11
github "vpeschenkov/LetterAvatarKit" == 1.1.7 # Swift 4.2
github "vpeschenkov/LetterAvatarKit" == 1.1.5 # Swift 4.0
$ carthage update
Usage
Swift
Using LetterAvatarMaker
:
// Square avatar image
let avatarImage = LetterAvatarMaker()
.setUsername("Letter Avatar")
.build()
avatarImageView.image = avatarImage
// Circle avatar image with white border
let circleAvatarImage = LetterAvatarMaker()
.setCircle(true)
.setUsername("Letter Avatar")
.setBorderWidth(1.0)
.setBackgroundColors([ .red ])
.build()
avatarImageView.image = circleAvatarImage
Using LetterAvatarMaker
with closures:
let avatarImage = LetterAvatarMaker()
.build { c in
c.username = "Letter Avatar"
}
avatarImageView.image = avatarImage
let avatarImage = LetterAvatarMaker()
.build { c in
c.circle = true
c.username = "Letter Avatar"
c.borderWidth = 1.0
c.backgroundColors = [ .red ]
}
avatarImageView.image = avatarImage
Using LetterAvatarBuilderConfiguration
:
let configuration = LetterAvatarBuilderConfiguration()
configuration.username = "Letter Avatar"
avatarImageView.image = UIImage.makeLetterAvatar(withConfiguration: configuration)
Using UIImage extension:
avatarImageView.image = UIImage.makeLetterAvatar(withUsername: "Letter Avatar")
Objective-C
Using LKLetterAvatarBuilderCongiguration
:
LKLetterAvatarBuilderCongiguration *configuration = [[LKLetterAvatarBuilderCongiguration alloc] init];
configuration.username = @"Letter Avatar";
self.avatarImageView.image = [UIImage lk_makeLetterAvatarWithConfiguration:configuration];
Using UIImage extension:
self.avatarImageView.image = [UIImage lk_makeLetterAvatarWithUsername:@"Letter Avatar"];
Customization
You can configure the following properties of LetterAvatarBuilderConfiguration
:
/// The username.
open var username: String?
/// The size of an avatar image.
open var size: CGSize = CGSize(width: 80, height: 80)
/// The flag that indicates of using single only one letter, otherwise,
/// as much as wil be possible to obtain. But no more than 3 letters.
open var isSingleLettered: Bool = false
/// The letters font.
open var lettersFont: UIFont = UIFont.systemFont(ofSize: 16.0)
/// The letters colors
open var lettersColor: UIColor = LKUIColorByRGB(red: 236, green: 240, blue: 241)
/// The background colors of an image.
open var backgroundColors: [UIColor] = UIColor.colors
/// The letters font attributes.
open var lettersFontAttributes: [NSAttributedString.Key: Any]?
/// Indicates whether to generate circle or square image.
open var circle: Bool = false
/// The border width of the image.
open var borderWidth: CGFloat = 0.0
/// The border color of the image.
open var borderColor: UIColor = UIColor.white
/// A Boolean flag indicating whether the avatar is opaque.
open var opaque: Bool = false
Community
Questions, comments, issues, and pull requests are welcome!
Contacts
License
Distributed under the MIT license. See LICENSE for more information.