Giter Site home page Giter Site logo

bachonk / uiimageview-letters Goto Github PK

View Code? Open in Web Editor NEW
686.0 26.0 70.0 118 KB

UIImageView category for using initials as a placeholder image, written in Objective-C. For a Swift implementation, see https://github.com/bachonk/InitialsImageView

License: MIT License

Objective-C 95.52% Ruby 4.48%
uiimageview-category objective-c uiimageview-letters category uiimageview placeholder cocoapods

uiimageview-letters's Introduction

UIImageView+Letters

An easy, helpful UIImageView category that generates letter initials as a placeholder for user profile images, with a randomized background color

Note: Looking for a Swift 3 compatible version? Check out the new InitialsImageView extension, rewritten entirely in Swift!

Example screenshot

Installation

CocoaPods

Add this spec to your podfile:

pod "UIImageView-Letters"

Check out the official guide for getting started with CocoaPods.

Manual
  1. Drag the UIImageView+Letters.{h,m} files into your project
  2. Enjoy!

Usage

In the file where you want to use the category, be sure to import the file.

#import "UIImageView+Letters.h"

Methods

Call the following methods on any UIImageView instance to set the image:

  • - (void)setImageWithString:(NSString *)string
  • - (void)setImageWithString:(NSString *)string color:(UIColor *)color
  • - (void)setImageWithString:(NSString *)string color:(UIColor *)color circular:(BOOL)isCircular
  • - (void)setImageWithString:(NSString *)string color:(UIColor *)color circular:(BOOL)isCircular fontName:(NSString *)fontName
  • - (void)setImageWithString:(NSString *)string color:(UIColor *)color circular:(BOOL)isCircular textAttributes:(NSDictionary *)textAttributes

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.

isCircular is a boolean parameter that will automatically clip the image to a circle if enabled.

fontName is a string that specifies a custom font. Pass in nil to use the system font by default. The list of provided font identifiers can be found here.

textAttributes is an NSDictionary that allows you to specify font, text color, shadow properties, etc., for the letters text, using the keys found in NSAttributedString.h.

Example
NSString *userName = @"Michael Bluth";
UIImageView *myImgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 50, 50)];
[myImgView setImageWithString:userName color:nil circular:YES];

Saying Thanks

If you like this tool, show your support by downloading the free Turnout app that inspired it!

License

Using the MIT license. See license file for details.

uiimageview-letters's People

Contributors

andrewsardone avatar bachonk avatar caseybrichardson avatar lukaskollmer avatar mattfaluotico avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uiimageview-letters's Issues

Unable to set UIImage of UITableViewCell

I am trying to use your library to set the image of a UITableViewCell (basic style).

I am using the following method to do so: cell.imageView?.setImageWithString(user.displayName, color: UIColor(hex: MVColor.Primary.Normal))

Unfortunately the image is not set and I am getting the following error:

<Error>: CGContextRestoreGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

I tried debugging the error. By using this method I found the cause of this problem. The error is produced by this call: CGContextTranslateCTM(context, -self.bounds.origin.x, -self.bounds.origin.y); (line 121 in your latest CocoaPods release) in your - (UIImage *)imageSnapshotFromView:(UIView *)inputView function.

It would be great to resolve this problem or find a workaround!

Thanks

Emoji issue

There is an issue when it is supposed to display emoji

Major Error.

Aug 13 23:57:35 myImac <Error>: CGContextTranslateCTM: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

CGContextFillRects: invalid context 0x0

i'm getting this error on iOS 9 Swift

: CGContextFillRects: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

Image not upading

Initial I'm setting the image with:
profileImageView.setImageWithString(myProfile.username, color: nil, circular: true, fontName: CustomFont.SF.Regular.rawValue) but later when I try to update that image via ImagePicker in UIImagePickerControllerDelegate method:

  func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) {

    if let pickedImage:UIImage = image {
      self.profileImageView.image = pickedImage
    } 
    dismissViewControllerAnimated(true, completion: nil)
  }

It doesn't update the image. It changes only the random color and still have the image with the letter drawn.

Am I doing something wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.