一讲弄、設(shè)置圓角的幾種方式
1、代碼中常常這樣設(shè)置
//cornerRadius 設(shè)置為self.iconImage圖片寬度的一半(僅針對(duì)正方形UIView)
self.iconImage.layer.cornerRadius = self.iconImage.frame.size.width/2;
self.iconImage.layer.masksToBounds = YES;
2依痊、在Xib或Stroyboard中這樣
yuanjiao.png
3避除、使用繪圖,重繪一個(gè)圓形圖片
/**設(shè)置圓形圖片(建議放到分類中使用) */
- (UIImage *)circleImage{
// 如果是長(zhǎng)方形圖片抗悍,就按最短的邊來(lái)
CGFloat w = self.size.width < self.size.height ? self.size.width : self.size.height;
UIGraphicsBeginImageContext(CGSizeMake(w, w));
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, w, w)];
[path addClip];
[self drawAtPoint:CGPointZero];
UIImage *circleImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return circleImage;
}
性能方面:使用方式1驹饺、2設(shè)置的性能沒(méi)有方式3性能好。因?yàn)槭褂脠D層過(guò)量會(huì)有卡頓現(xiàn)象缴渊,所有如果特別多的圖片需要圓形赏壹、陰影處理的話,建議使用繪圖方式衔沼。
二蝌借、設(shè)置陰影效果
View.layer.shadowOffset = CGSizeMake(0, 0); //x向右偏移昔瞧,y向下偏移,設(shè)置成(0菩佑,0)表示不偏移
View.layer.shadowColor = [UIColor blackColor].CGColor; //陰影顏色
View.layer.shadowOpacity = 1; //陰影透明度自晰,默認(rèn)0
View.layer.shadowRadius = 4; //陰影半徑,默認(rèn)3
三稍坯、同時(shí)設(shè)置圓角和陰影效果
如果這樣設(shè)置是這種效果會(huì)沒(méi)有陰影(原因:使用masksToBounds會(huì)切掉陰影部分的圖層)
View.layer.cornerRadius = 10;
View.layer.masksToBounds = YES;
View.layer.shadowOffset = CGSizeMake(0, 0);
View.layer.shadowColor = [UIColor blackColor].CGColor;
View.layer.shadowOpacity = 1;
View.layer.shadowRadius = 4;
解決方法就是不切酬荞,刪除這行代碼
View.layer.masksToBounds = YES;
效果如如下:
IMG_1614.PNG