Popularity
2.9
Stable
Activity
6.2
Stable
157
3
27

Monthly Downloads: 0
Programming language: Swift
License: MIT License
Tags: Images    
Latest version: v1.2.1

LetterAvatarKit alternatives and similar libraries

Based on the "Images" category

Do you think we are missing an alternative of LetterAvatarKit or a related project?

Add another 'Images' Library

README

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 and later
  • Swift 4.0 and later

Features

  • Ease of use
  • Flexible API
  • Builder pattern
  • Circle/Square/Bordered image
  • Flat UI colors

Installation

CocoaPods

LetterAvatarKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "LetterAvatarKit", "1.2.1" # Swift 5.0
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.1 # Swift 5.0
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.isCircle = 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 isCircle: 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

Community

Questions, comments, issues, and pull requests are welcome!

Contacts

License

Distributed under the MIT license. See LICENSE for more information.


*Note that all licence references and agreements mentioned in the LetterAvatarKit README section above are relevant to that project's source code only.