大佬教程收集整理的这篇文章主要介绍了ios – 仅将CALayer阴影屏蔽到rect之外,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
shadowLayer.shadowOffset = CGSizeMake(x,y); shadowLayer.shadowRadius = radius; shadowLayer.shadowOpacity = opacity; shadowLayer.shadowColor = color.CGColor; shadowLayer.shadowPath = [UIBezierPath bezierPathWithRect:view.bounds].CGPath;
谢谢.
float radius = 8; float opacity = 0.5f; float x = 4; float y = 6; UIColor *color = [UIColor blackColor]; // Shadow layer CALayer *shadowLayer = [CALayer layer]; shadowLayer.shadowOffset = CGSizeMake(x,y); shadowLayer.shadowRadius = radius; shadowLayer.shadowOpacity = opacity; shadowLayer.shadowColor = color.CGColor; shadowLayer.shadowPath = [UIBezierPath bezierPathWithRect:view.frame].CGPath; // Or any other path // Shadow mask frame CGRect frame = CGRecTinset(view.layer.frame,-2*radius,-2*radius); frame = CGRectOffset(frame,x,y); // Translate shadowLayer shadow path to mask layer's coordinate system CGAffineTransform trans = CGAffineTransformMakeTranslation(-view.frame.origin.x-x+2*radius,-view.frame.origin.y-y+2*radius); // Mask path CGMutablePathRef path = CGPathCreateMutable(); CGPathAddRect(path,nil,(CGRect){.origin={0,0},.size=frame.sizE}); CGPathAddPath(path,&trans,shadowLayer.shadowPath); CGPathCloseSubpath(path); // Mask layer CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; maskLayer.frame = frame; maskLayer.fillRule = kCAFillRuleEvenOdd; maskLayer.path = path; shadowLayer.mask = maskLayer; [view.layer.superlayer insertSublayer:shadowLayer below:view.layer];
以上是大佬教程为你收集整理的ios – 仅将CALayer阴影屏蔽到rect之外全部内容,希望文章能够帮你解决ios – 仅将CALayer阴影屏蔽到rect之外所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。