// // Created by Jesse Squires // http://www.jessesquires.com // // // Documentation // http://cocoadocs.org/docsets/JSQMessagesViewController // // // GitHub // https://github.com/jessesquires/JSQMessagesViewController // // // License // Copyright (c) 2014 Jesse Squires // Released under an MIT license: http://opensource.org/licenses/MIT // #import "JSQMessagesAvatarImage.h" @implementation JSQMessagesAvatarImage #pragma mark - Initialization + (instancetype)avatarWithImage:(UIImage *)image { NSParameterAssert(image != nil); return [[JSQMessagesAvatarImage alloc] initWithAvatarImage:image highlightedImage:image placeholderImage:image]; } + (instancetype)avatarImageWithPlaceholder:(UIImage *)placeholderImage { return [[JSQMessagesAvatarImage alloc] initWithAvatarImage:nil highlightedImage:nil placeholderImage:placeholderImage]; } - (instancetype)initWithAvatarImage:(UIImage *)avatarImage highlightedImage:(UIImage *)highlightedImage placeholderImage:(UIImage *)placeholderImage { NSParameterAssert(placeholderImage != nil); self = [super init]; if (self) { _avatarImage = avatarImage; _avatarHighlightedImage = highlightedImage; _avatarPlaceholderImage = placeholderImage; } return self; } #pragma mark - NSObject - (NSString *)description { return [NSString stringWithFormat:@"<%@: avatarImage=%@, avatarHighlightedImage=%@, avatarPlaceholderImage=%@>", [self class], self.avatarImage, self.avatarHighlightedImage, self.avatarPlaceholderImage]; } - (id)debugQuickLookObject { return [[UIImageView alloc] initWithImage:self.avatarImage ?: self.avatarPlaceholderImage]; } #pragma mark - NSCopying - (instancetype)copyWithZone:(NSZone *)zone { return [[[self class] allocWithZone:zone] initWithAvatarImage:[UIImage imageWithCGImage:self.avatarImage.CGImage] highlightedImage:[UIImage imageWithCGImage:self.avatarHighlightedImage.CGImage] placeholderImage:[UIImage imageWithCGImage:self.avatarPlaceholderImage.CGImage]]; } @end