As we all know, adding rounded corners to the picture is a calayer Cornerradius,
Like what:
The most straightforward approach:
imgview.layer.cornerradius1=110;imgview.clipstobounds = YES;this thing off-screen rendering (off-screen-rendering), is very expensive performance; There are a lot of companies that interview will ask, how do you set the picture rounded, if youonly answer this method, then unfortunately, no bonus points. Here's a better way to do this:#import "Bys.h"
@implementation Bys
-(uiimage*) Imagewithcornerradius: (cgfloat) radius{
CGRect rect = (cgrect) {0.f,0.f,self.size};
void Uigraphicsbeginimagecontextwithoptions (cgsize size, BOOL opaque, cgfloat scale);
size--with Uigraphicsbeginimagecontext, parameter size for newly created bitmap contexts
opaque-Transparent switch, if the graphic is not transparent at all, set to Yes to optimize the storage of the bitmap.
scale-– Scaling Factor
Uigraphicsbeginimagecontextwithoptions (Self.size, NO, [UIScreen Mainscreen].scale);
Draw a curve with rounded corners based on a rectangle
Cgcontextaddpath (Uigraphicsgetcurrentcontext (), [Uibezierpath Bezierpathwithroundedrect:rect CornerRadius:radius] . Cgpath);
[Self drawinrect:rect];
Picture scaling, non-thread safe
UIImage * image = Uigraphicsgetimagefromcurrentimagecontext ();
Close context
Uigraphicsendimagecontext ();
return image;
}
add an extension API to UIImage to create rounded pictures: This is on-screen-rendering
Two ways iOS adds rounded corners to uiimage