您的位置:首页 > 移动开发 > IOS开发

iOS 视图切圆角和阴影

2017-09-18 17:00 211 查看

1.四个角都切

self.picImage.layer.cornerRadius = 8;

self.picImage.layer.masksToBounds = YES;


2.切1~4个角

代码示例(切的左下,和右下)

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.tipLabel.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(5, 5)];

CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

maskLayer.frame = _tipLabel.bounds;

maskLayer.path = maskPath.CGPath;

self.tipLabel.layer.mask = maskLayer;


类型共有以下几种:

UIRectCornerTopLeft

UIRectCornerTopRight

UIRectCornerBottomLeft

UIRectCornerBottomRight

UIRectCornerAllCorners

3.视图加阴影

阴影的颜色

imgView.layer.shadowColor = [UIColor blackColor].CGColor;

阴影的透明度

imgView.layer.shadowOpacity = 0.8f;

阴影的圆角

imgView.layer.shadowRadius = 4.f;

阴影偏移量

imgView.layer.shadowOffset = CGSizeMake(5,5);



imgView.layer.shadowOffset = CGSizeMake(0,0);



4.圆角和阴影共存

圆角和阴影无法在一个layer上共存,所以需要思路是再创建一个layer层,实现阴影,放到视图下边,具体实现:

//圆角
imgView.layer.masksToBounds = YES;
imgView.layer.cornerRadius = 10;
// 阴影
CALayer *subLayer=[CALayer layer];
CGRect fixframe = imgView.frame;
subLayer.frame= fixframe;
subLayer.cornerRadius=8;
subLayer.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:0.8].CGColor;
subLayer.masksToBounds=NO;
subLayer.shadowColor = [UIColor blackColor].CGColor;//shadowColor阴影颜色
subLayer.shadowOffset = CGSizeMake(3,2);//shadowOffset阴影偏移,x向右偏移3,y向下偏移2,默认(0, -3),这个跟shadowRadius配合使用
subLayer.shadowOpacity = 0.8;//阴影透明度,默认0
subLayer.shadowRadius = 4;//阴影半径,默认3
[self.view.layer insertSublayer:subLayer below:imgView.layer];




转载请注明出处,万分感谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: