iOS給UIImageView新增圓角的三種方法
前言
在iOS開發中我們經常會遇到給UIImageView新增圓角,如:給使用者頭像設定圓角等。在這裡記錄一下使用過的三種方法。
方法一:通過設定UIView的layer來設定圓角
UIImageView *imgView = [UIImageView new];
imgView.image = [UIImage imageNamed:@"aa"];
imgView.layer.cornerRadius = imgView.frame.size.width / 2;
imgView.layer.masksToBounds = YES;
此方法的有個缺點是:會強制Core Animation提前渲染螢幕的離屏繪製, 而離屏繪製就會給效能帶來負面影響,會有卡頓的現象出現
方法二:通過Graphics繪製圖片,將圖片裁剪成圓角
- (UIImage *)clipImage1:(UIImage *)image {
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
// 獲取上下文
CGContextRef contextRef = UIGraphicsGetCurrentContext();
// 新增一個圓
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;
}
裁剪後設定圖片即可
方法三: 依然是繪製圖片,這次是通過貝塞爾曲線繪製圖片
- (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;
}
繪製後設定UIImageView的圖片即可
總結:
以上設定圖片圓角的三種方法,在使用過程中各有優缺點,需要根據實際情況具體判斷使用方法。
另外推薦一下我的導航欄聯動庫:GKNavigationController
相關文章
- UIImageView UIView圓角與效能之間的研究與優化UIView優化
- 筆記-iOS設定圓角方法以及指定位置設圓角筆記iOS
- iOS 繪製圓角iOS
- MXCornerRadius 只需1行程式碼讓你的UIImageView 有任意的cornerRadius圓角!行程UIView
- 筆記-圓角四種方法的對比以及效能檢測筆記
- iOS 實現檢視指定圓角iOS
- 使用css 畫三角形的三種方法CSS
- 直播系統程式碼,給標題欄新增陰影效果和圓角效果
- 給安卓 app 新增許可權的一種方法安卓APP
- 【JS】JS陣列新增元素的三種方法JS陣列
- 在VS中新增lib庫的三種方法
- 圓形視訊和圓角視訊的一種實現方式
- iOS開發_繪製圓角矩形虛線環iOS
- CSS 奇思妙想 | 巧妙的實現帶圓角的三角形CSS
- DDGScreenShot —iOS 圖片裁剪,切圓角,加邊框,你還用cornerRadius,還有更高階的方法iOS
- Android中圖片圓形設定三種方法介紹Android
- visio圓角矩形怎麼改變圓角大小
- Flutter 圓形/圓角頭像Flutter
- AUTOCAD——圓角命令
- Android 圓角、圓形 ImageView 實現AndroidView
- MySQL 三種新增語句MySql
- 提供一個Glide靈活載入圓角圖片的方法IDE
- UIView 的部分圓角的設定UIView
- 剪映app怎麼給影片新增字幕?剪映app給影片新增文字的方法教程APP
- CSS 文字框圓角CSS
- PHP合成圖圓角PHP
- 組合數取模的幾種方法--Exlucas&楊輝三角&組合
- iOS常見的幾種加密方法iOS加密
- 如何用pscc 2018圓角外掛mac版製作倒圓角Mac
- PCB 板邊倒圓角的實現方法(基本演算法一)演算法
- 在相親原始碼開發中,如何實現圓角及特殊圓角的使用?原始碼
- cad圓角命令怎麼用 cad圓角命令無效怎麼回事
- CSS不用背景圖片實現優惠券樣式反圓角,凹圓角,反向半圓角,並且背景漸變CSS
- css圓角矩形邊框CSS
- canvas 繪製圓角矩形Canvas
- SVG 繪製圓角矩形SVG
- 圓角select下拉選單
- [計算幾何]圓與三角形是否相交
- 根據SVG Arc求出其開始角、擺動角和橢圓圓心SVG