iOS-設置圖片圓角的幾種方法總結

前言:

現(xiàn)在眾多App中,用戶頭像,BBS帖子詳情,為了美觀好多都是采用的原形圖片來顯示,QQ和微信的用戶頭像也是原形,廢話不多說,下面講一下怎么實現(xiàn)圖片圓角,自己總結的幾種方法,大家互相學習一下.

方法一:(適用于Xib或者Storyboard中):

首先是選中要設置的圖片(或者其他空間),這種方法當然也適用于其他控件,因為它們都是繼承與UIView的,選中要空間之后,下面看圖說話:

Paste_Image.png

設置如上圖所示,注意上面的Key不要寫錯哦,然后Number對應的10是所要設置的圓角的大小,根據(jù)需求而定

方法二:

這種方法也是針對大眾的控件(button或者label)都可以實現(xiàn)

   view.layer.masksToBounds = YES;
    // 設置圓角大小
    view.layer.cornerRadius = 6.0 ;
    // 設置控件邊框的寬度
    view.layer.borderWidth = 1.0;
    // 設置控件邊框的顏色
    view.layer.borderColor = [[UIColor redColor] CGColor];
方法三:

考慮到工程中會設置大量的圖片圓角,以上兩種方法雖然可以實現(xiàn)圓角的效果,但是會印象性能,為了以后用起來方便還是自己封裝一套設置圖片圓角的方法比較實用些,接下來我們就來封裝一下實現(xiàn)圖片圓角功能的代碼:

可以為UIImage添加分類,代碼如下:
#import <UIKit/UIKit.h>
@interface UIImage (PDExtension)
/**
 *  返回原型圖片
 */
- (instancetype)circleImage;

/**
 *  返回原型圖片
 */
+ (instancetype)circleImage:(NSString *)image;
@end

方法的實現(xiàn):

#import "UIImage+PDExtension.h"

@implementation UIImage (PDExtension)
- (instancetype)circleImage
{
    UIGraphicsBeginImageContext(self.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextAddEllipseInRect(ctx, rect);
    CGContextClip(ctx);
    [self drawInRect:rect];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

+ (instancetype)circleImage:(NSString *)image
{
    return [[self imageNamed:image] circleImage];
}
@end

UIImage的分分類方法的用法:
下面是先設置圖片圓角,然后設置按鈕的圖片

[self.iconButton setImage:[image circleImage] forState:UIControlStateNormal];
考慮到很多直接設置UIImageView圓角,接下來就為UIImageView在添加一個分類
#import <UIKit/UIKit.h>

@interface UIImageView (PDExtension)
// 沒有占位圖片
- (void)setHeaderUrl:(NSString *)url;
// 帶有占位圖片
- (void)setHeaderUrl:(NSString *)url withplaceholderImageName:(NSString *)placeholderImageName;
@end

方法的實現(xiàn)

#import "UIImageView+PDExtension.h"

@implementation UIImageView (PDExtension)
- (void)setHeaderUrl:(NSString *)url
{
    [self setCircleHeaderUrl:url];
}

- (void)setCircleHeaderUrl:(NSString *)url
{
    [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:@"img_studio_default"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        if (image == nil) return;
        self.image = [image circleImage];
    }];
}
- (void)setHeaderUrl:(NSString *)url withplaceholderImageName:(NSString *)placeholderImageName
{
    [self sd_setImageWithURL:[NSURL URLWithString:url] placeholderImage:[UIImage imageNamed:placeholderImageName] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
        if (image == nil) return;
        self.image = [image circleImage];
    }];

}
@end

UIImageView分類方法的用法:

[self.iconImageView setHeaderUrl:topic.boardheadportrait];
注意點:如果是用的UIImageView是分類方法,這個類的實現(xiàn)是以UIImage為基礎的,里面用到了UIImage的方法,所以用的時候記得把UIImage的分類也要寫上,還有用分類方法的時候記得導入頭文件......
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末掸冤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子友雳,更是在濱河造成了極大的恐慌稿湿,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件押赊,死亡現(xiàn)場離奇詭異饺藤,居然都是意外死亡包斑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門涕俗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來罗丰,“玉大人,你說我怎么就攤上這事再姑∶鹊郑” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵元镀,是天一觀的道長绍填。 經常有香客問我,道長栖疑,這世上最難降的妖魔是什么讨永? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮遇革,結果婚禮上卿闹,老公的妹妹穿的比我還像新娘。我一直安慰自己萝快,他們只是感情好锻霎,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杠巡,像睡著了一般量窘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上氢拥,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天蚌铜,我揣著相機與錄音,去河邊找鬼嫩海。 笑死冬殃,一個胖子當著我的面吹牛,可吹牛的內容都是我干的叁怪。 我是一名探鬼主播审葬,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奕谭!你這毒婦竟也來了涣觉?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤血柳,失蹤者是張志新(化名)和其女友劉穎官册,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體难捌,經...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡膝宁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年鸦难,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片员淫。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡合蔽,死狀恐怖,靈堂內的尸體忽然破棺而出介返,到底是詐尸還是另有隱情拴事,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布映皆,位于F島的核電站挤聘,受9級特大地震影響,放射性物質發(fā)生泄漏捅彻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一鞍陨、第九天 我趴在偏房一處隱蔽的房頂上張望步淹。 院中可真熱鬧,春花似錦诚撵、人聲如沸缭裆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澈驼。三九已至,卻和暖如春筛武,著一層夾襖步出監(jiān)牢的瞬間缝其,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工徘六, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留内边,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓待锈,卻偏偏與公主長得像漠其,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子竿音,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內容

  • 在iOS中隨處都可以看到絢麗的動畫效果和屎,實現(xiàn)這些動畫的過程并不復雜,今天將帶大家一窺ios動畫全貌春瞬。在這里你可以看...
    每天刷兩次牙閱讀 8,489評論 6 30
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫柴信、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,103評論 4 62
  • Swift版本點擊這里歡迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh閱讀 25,375評論 7 249
  • 在iOS中隨處都可以看到絢麗的動畫效果线罕,實現(xiàn)這些動畫的過程并不復雜止潮,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,111評論 5 13
  • svn不是有操作界面么钞楼,用命令行裝什么逼喇闸?你要知道,你也是逼出來的询件,畢竟它莫名奇妙的就各種卡死燃乍,你百度下“svn ...
    wyude閱讀 666評論 1 1