UIImage 圓角以及不同方向的圓角

2021-06-20 07:42:38 字數 1685 閱讀 1633

自己對這個進行了重新封裝,方便大家使用。

////  uiimage+roundrect.h

////  created by eric on 11/11/12.//

#import

#import "sqlibs.h"

typedefenum uiimageroundedcorner;

@inte***ce uiimage (roundrect)

- (uiimage *)roundedrectwith:(float)radius;

- (uiimage *)roundedrectwith:(float)radius cornermask:(uiimageroundedcorner)cornermask;

@end

////  uiimage+roundrect.m

////  created by eric on 11/11/12.//

#import "uiimage+roundrect.h"

@implementation uiimage (roundrect)

//uikit座標系統原點在左上角,y方向向下的(座標系a),但在quartz中座標系原點在左下角,y方向向上的(座標系b)。繪製也是顛倒的。

static

void addroundedrecttopath(cgcontextref context, cgrect rect, float radius, uiimageroundedcorner cornermask)

else

//畫線4的起始,到線4的終點

cgcontextaddlinetopoint(context, rect.origin.x + rect.size.width - radius,

rect.origin.y + rect.size.height);

//畫右上角

if(cornermask & uiimageroundedcornertopright)

else

cgcontextaddlinetopoint(context, rect.origin.x + rect.size.width, rect.origin.y + radius);

//畫右下角弧線

if(cornermask & uiimageroundedcornerbottomright)

else

cgcontextaddlinetopoint(context, rect.origin.x + radius, rect.origin.y);

//畫左下角弧線

if(cornermask & uiimageroundedcornerbottomleft)

else

cgcontextclosepath(context); }

- (uiimage *)roundedrectwith:(float)radius

- (uiimage *)roundedrectwith:(float)radius cornermask:(uiimageroundedcorner)cornermask

@end

**一般圓角顯示都是四個角都顯示圓角,如果只有這個功能需求,採用常用的方法就可以了,也不用費那麼多事情。但是在有些情況下需要只顯示的2個圓角,就不太好實現了。

先看效果圖 ,未做圓角轉換的

UIImage不同環境下的幾種建立方式

uiimage就是乙個 自己不能顯示 必須依託其他空間顯示 建立的常用3種方法 1 較小可使用此種方法 此方法建立的會一直駐留在記憶體中 uiimage img1 uiimage imagenamed 1.png 2 較大可以使用此方法 從檔案中獲取乙個 uiimage img2 uiimage a...

元素定位以及圓角樣式

相對定位 lang en charset utf 8 titletitle body div father first second third style head father first 第乙個盒子div second 第二個盒子div third 第三個盒子div div body html...

不同封裝大小以及不同封裝轉換 會繼續更新

sma do 214ac smb do 214aa smc do 214ab inch 英呎 1 inch 25.4 mm 公制表示法英製表示法 含義 12063216 l 1.2inch 3.2mm w 0.6inch 1.6 mm 08052125 l 0.8inch 2.0mm w 0.5in...