现在的位置: 首页 > 综合 > 正文

让UIview帮你处理圆角

2017年10月31日 ⁄ 综合 ⁄ 共 893字 ⁄ 字号 评论关闭

最近遇到这个需求,以为是多难的事。

结果就两三行搞定。

 

#import <QuartzCore/QuartzCore.h>

 

//UIView or inherited from uiview.

self.layer.maksToBounds = YES;

self.layer.cornerRadius = 5.0; //根据需要调整

 

 

 

////官方的切圆角代码:

static
 void
 addRoundedRectToPath(
CGContextRef context
, CGRect rect
,
float ovalWidth,float ovalHeight)
{
float fw, fh;
if ( ovalWidth == 0 || ovalHeight == 0 ) { // 1
CGContextAddRect( context , rect ) ;
return ;
}
CGContextSaveGState( context ) ; // 2
CGContextTranslateCTM ( context , CGRectGetMinX( rect ) , // 3
CGRectGetMinY( rect ) ) ;
CGContextScaleCTM ( context , ovalWidth, ovalHeight) ; // 4
fw = CGRectGetWidth ( rect ) / ovalWidth; // 5
fh = CGRectGetHeight ( rect ) / ovalHeight; // 6
CGContextMoveToPoint( context , fw, fh/ 2 ) ; // 7
CGContextAddArcToPoint( context , fw, fh, fw/ 2 , fh, 1 ) ; // 8
CGContextAddArcToPoint( context , 0 , fh, 0 , fh/ 2 , 1 ) ; // 9
CGContextAddArcToPoint( context , 0 , 0 , fw/ 2 , 0 , 1 ) ; // 10
CGContextAddArcToPoint( context , fw, 0 , fw, fh/ 2 , 1 ) ; // 11
CGContextClosePath( context ) ; // 12
CGContextRestoreGState( context ) ; // 13
}

 

抱歉!评论已关闭.