iOS 程序员

圆角设置

2017-03-24  本文已影响31人  CoderLNHui

外部引用


    UIImage *placeholder = [UIImage SH_circleImageNamed:@"defaultUserIcon"];
    [self.profileImageView sd_setImageWithURL:[NSURL URLWithString:topic.profile_image] placeholderImage:placeholder options:0 completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        // 图片下载失败,直接返回,按照它的默认做法
        if (!image) return;
        
        self.profileImageView.image = [image SH_circleImage];
    }];

代码实现


#import <UIKit/UIKit.h>

@interface UIImage (Image)

+ (instancetype)imageOriginalWithName:(NSString *)imageName;

- (instancetype)SH_circleImage;

+ (instancetype)SH_circleImageNamed:(NSString *)name;
@end



#import "UIImage+Image.h"

@implementation UIImage (Image)

+ (instancetype)imageOriginalWithName:(NSString *)imageName
{
    UIImage *image = [UIImage imageNamed:imageName];
    
    return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

}

- (instancetype)SH_circleImage
{
    // 1.开启图形上下文
    // 比例因素:当前点与像素比例
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0);
    // 2.描述裁剪区域
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
    // 3.设置裁剪区域;
    [path addClip];
    // 4.画图片
    [self drawAtPoint:CGPointZero];
    // 5.取出图片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    // 6.关闭上下文
    UIGraphicsEndImageContext();
    
    return image;
}

+ (instancetype)SH_circleImageNamed:(NSString *)name
{
    return [[self imageNamed:name] SH_circleImage];
}
@end
上一篇 下一篇

猜你喜欢

热点阅读