Inspired by https://github.com/bachonk/UIImageView-Letters
An easy, helpful UIImageView extension that generates letter initials as a placeholder for user profile images, with a randomized background color if needed.
Add this spec to your podfile:
use_frameworks!
pod 'Letters'
Check out the official guide for getting started with CocoaPods.
- Drag the
UIImageView+Letters.swift
files into your project - Enjoy!
Call the following method on any UIImageView
instance to set the image:
func setImage(string: String?, color: UIColor? = nil, circular: Bool = false, textAttributes: [NSAttributedStringKey: Any]? = nil)
string
is the string used to generate the initials. This should be a user's full name if available.
color
is an optional parameter that sets the background color of the image. Pass in nil
to have a color automatically generated for you.
circular
is a boolean parameter that will automatically clip the image to a circle if enabled.
textAttributes
is n dictionary that allows you to specify font, text color, shadow properties, etc., for the letters text, using the keys found in NSAttributedStringKey
.
If you want to keep the same color for a given name, you can use the following method from UIColor
extension:
static func colorHash(name: String?) -> UIColor
You can get random color using the method static var random: UIColor
.
userImageView?.setImage(string: "John DOE", color: .random, circular: true, attributes: [NSAttributedStringKey.font: font.withSize(font.pointSize * 2), NSAttributedStringKey.foregroundColor: UIColor.softBlue])
Using the MIT license. See license file for details.