iOS小知識(shí)點(diǎn)05

UIImageView添加圓角

在項(xiàng)目中提供的圖片是矩形的,現(xiàn)要改成圓角圖片,于是找了一些資料,下面是添加圓角圖片的方法
創(chuàng)建UIImage的分類(lèi)UIImage+ImageRounderCorner
UIImage+ImageRounderCorner.h文件中

#import <UIKit/UIKit.h>

@interface UIImage (ImageRounderCorner)

/** 調(diào)用此方法,返回一個(gè)帶有圓角的UIImage對(duì)象
 *  參數(shù)一:圓角半徑
 *  參數(shù)二:圖片的大小
 */
- (UIImage *)imageAddCornerWithRadius:(CGFloat)radius andSize:(CGSize)size;

@end

UIImage+ImageRounderCorner.m文件中

#import "UIImage+ImageRounderCorner.h"

@implementation UIImage (ImageRounderCorner)

- (UIImage *)imageAddCornerWithRadius:(CGFloat)radius andSize:(CGSize)size {

    CGRect rect = CGRectMake(0, 0, size.width, size.height);
// 創(chuàng)建一個(gè)基于位圖的上下文(context),并將其設(shè)置為當(dāng)前上下文,size為新創(chuàng)建的位圖上下文大小
    // opaque 透明開(kāi)關(guān) // scale 縮放因子
    UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
    // 拿到當(dāng)前上下文對(duì)象
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 創(chuàng)建貝塞爾曲線(xiàn)
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(radius, radius)];
    // 添加路徑
    CGContextAddPath(ctx, path.CGPath);
    // 裁剪
    CGContextClip(ctx);
    // 繪圖
    [self drawInRect:rect];
    // 填充繪制
    CGContextDrawPath(ctx, kCGPathFillStroke);
    // 從當(dāng)前位圖上下文的內(nèi)容輸出一個(gè)UIImage圖片
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    // 上下文棧pop出創(chuàng)建的context
    UIGraphicsEndImageContext();

    return newImage;
}

@end

使用:
在控制器中導(dǎo)入 #import "UIImage+ImageRounderCorner.h"

- (void)viewDidLoad {
    [super viewDidLoad];
    UIImage *image = [UIImage imageNamed:@"image"];
    UIImage *cornerImage = [image imageAddCornerWithRadius: 50.0 andSize:CGSizeMake(50.0, 50.0)];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 50, 50)];
    [self.view addSubview:imageView];
}

運(yùn)行后,發(fā)現(xiàn),將原有的矩形圖片轉(zhuǎn)換為了帶圓角的圖片。

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜,今天將帶大家一窺ios動(dòng)畫(huà)全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,699評(píng)論 6 30
  • 許多UIView的子類(lèi),如一個(gè)UIButton或一個(gè)UILabel,它們知道怎么繪制自己。遲早,你也將想要做一些自...
    shenzhenboy閱讀 1,759評(píng)論 2 8
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫(huà)效果,實(shí)現(xiàn)這些動(dòng)畫(huà)的過(guò)程并不復(fù)雜,今天將帶大家一窺iOS動(dòng)畫(huà)全貌。在這里你可以看...
    F麥子閱讀 5,275評(píng)論 5 13
  • 1.什么是 ARC ? ( ARC 是為了解決什么問(wèn)題誕生的 ? )#### 自動(dòng)引用計(jì)數(shù) ( ARC ,Auto...
    Smy閱讀 845評(píng)論 0 5
  • 那一年,他離開(kāi)女兒國(guó)。她在城頭似哭似笑,當(dāng)著百官的面,對(duì)著他的背影大喊“唐玄奘,下輩子娶我可好?”。夕陽(yáng)下,白衣騎...
    潘星光閱讀 591評(píng)論 1 0

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