方式一:設(shè)置layer相關(guān)的屬性
- 如果這樣的設(shè)置的view很多,
影響流暢性
網(wǎng)友圖片
- 情景一:使用
代碼
設(shè)置
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"friendsRecommentIcon"]];
// 設(shè)置圓角的大小
imageView.layer.cornerRadius = 5;
[imageView.layer setMasksToBounds:YES];
- 情景二:在
xib
中設(shè)置- 利用
KVC
設(shè)置,如下圖:
- 利用
設(shè)置 Key Path
展示效果
方式二:畫
- 性能高
- 可以給
UIImage
添加一個分類UIImage+Extension
- 分類中增加一個返回圓形圖片的方法,擴(kuò)展性強(qiáng)
#import <UIKit/UIKit.h>
@interface UIImage (Extension)
- (UIImage *)circleImage;
@end
#import "UIImage+Extension.h"
@implementation UIImage (Extension)
- (UIImage *)circleImage {
// 開始圖形上下文
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
// 獲得圖形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
// 設(shè)置一個范圍
CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
// 根據(jù)一個rect創(chuàng)建一個橢圓
CGContextAddEllipseInRect(ctx, rect);
// 裁剪
CGContextClip(ctx);
// 將原照片畫到圖形上下文
[self drawInRect:rect];
// 從上下文上獲取剪裁后的照片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 關(guān)閉上下文
UIGraphicsEndImageContext();
return newImage;
}
具體使用:
// 獲得的就是一個圓形的圖片
UIImage *placeHolder = [[UIImage imageNamed:@"defaultUserIcon"] circleImage];