iOS給UIImageView添加圓角的三種方法

前言

在iOS開發(fā)中我們經(jīng)常會(huì)遇到給UIImageView添加圓角,如:給用戶頭像設(shè)置圓角等。在這里記錄一下使用過的三種方法。

方法一:通過設(shè)置UIView的layer來設(shè)置圓角

    UIImageView *imgView = [UIImageView new];
    imgView.image = [UIImage imageNamed:@"aa"];
    imgView.layer.cornerRadius  = imgView.frame.size.width / 2;
    imgView.layer.masksToBounds = YES;

此方法的有個(gè)缺點(diǎn)是:會(huì)強(qiáng)制Core Animation提前渲染屏幕的離屏繪制, 而離屏繪制就會(huì)給性能帶來負(fù)面影響,會(huì)有卡頓的現(xiàn)象出現(xiàn)

方法二:通過Graphics繪制圖片,將圖片裁剪成圓角

- (UIImage *)clipImage1:(UIImage *)image {
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
    
    // 獲取上下文
    CGContextRef contextRef = UIGraphicsGetCurrentContext();
    
    // 添加一個(gè)圓
    CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
    CGContextAddEllipseInRect(contextRef, rect);
    CGContextClip(contextRef);
    
    // 畫圖片
    [image drawInRect:rect];
    
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return newImage;
}

裁剪后設(shè)置圖片即可

方法三: 依然是繪制圖片,這次是通過貝塞爾曲線繪制圖片

- (UIImage *)clipImage2:(UIImage *)image {
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 1.0);
    
    CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
    [[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:image.size.width / 2] addClip];
    
    [image drawInRect:rect];
    
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return newImage;
}

繪制后設(shè)置UIImageView的圖片即可

總結(jié):

以上設(shè)置圖片圓角的三種方法,在使用過程中各有優(yōu)缺點(diǎn),需要根據(jù)實(shí)際情況具體判斷使用方法。

另外推薦一下我的導(dǎo)航欄聯(lián)動(dòng)庫(kù):GKNavigationController

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,391評(píng)論 4 61
  • 一直都喜歡原創(chuàng),礙于寶寶自己想象力不夠,手也慘。第一次作品,臨摹了兩幅,混搭了一副 這個(gè)主題 生日快樂 因?yàn)閷殞殞?..
    糯糯團(tuán)閱讀 255評(píng)論 2 1
  • 這又是一個(gè)再熟悉不過的晚修了,太陽(yáng)在沿著赤道上慢慢地偏移,光陰在老舊的玻璃窗上,映帶著陽(yáng)臺(tái)外的樹影晃動(dòng)著;紅光慵...
  • 夜雨聲中背完今日份單詞,準(zhǔn)備睡覺時(shí)突然想起來白天kindle里推薦的簡(jiǎn)書,想著試試,大概可以隨便寫寫吧,試試看了。...
    夏日歸來閱讀 171評(píng)論 0 0
  • 在川流不息的人海里 你不要驚奇我為何那樣看你---- 冷得似箭,一下要洞穿你的世界 你更不要生氣 因?yàn)檫@一箭射掉的...
    故鄉(xiāng)老酒閱讀 439評(píng)論 1 1

友情鏈接更多精彩內(nèi)容