![](/img/trans.png)
[英]IOS: How to make a shadow for UIView on 4 side (top,right,bottom and left)
[英]Drop a shadow to right and bottom of uiview
我必须在uiview的右边和底部放一个阴影。我正在界面生成器中执行此操作,但是我看到阴影降到了它的顶部。尝试了不同的大小,但无法获得它。
layer.masksToBound=No
layer.shadowOpacity=0.15
layer.shadowRadius=2
layer.shadowOffSet={10,-10} //Values being set in Interfacebuilder.
这仍然在顶部留下了阴影。我应该怎么做才能获得底部的视图。
尝试以下代码,可能会对您有所帮助
myView.layer.shadowColor = [UIColor purpleColor].CGColor;
myView.layer.shadowOffset = CGSizeMake(5, 5);
myView.layer.shadowOpacity = 1;
myView.layer.shadowRadius = 1.0;
myView.layer.maskToBounds = NO;
我测试了这段代码,它的工作原理是:
嗨,我用下面的代码,它将为您提供所需的阴影。
UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds];
_viewShadow.layer.masksToBounds = NO;
_viewShadow.layer.shadowColor = [UIColor blackColor].CGColor;
_viewShadow.layer.shadowOffset = CGSizeMake(10.0f, 5.0f); /*Change value of X n Y as per your need of shadow to appear to like right bottom or left bottom or so on*/
_viewShadow.layer.shadowOpacity = 0.5f;
_viewShadow.layer.shadowPath = shadowPath.CGPath;
masksToBounds也是imp的,因为它禁用了超出视图范围的子层的裁剪。 如果将其设置为“是”,那么您将看不到阴影,因为它会将子图层剪切到其他位置,否则以“否”的方式扩展图层。
在Swift 3中 , CGSizeMake
不再存在。 它已更改为CGSize(width: 20, height: 10)
。 因此可以在Swift 3中像这样设置shadowOffset
:
myView.layer.shadowOffset = CGSize(width: 20, height: 10)
我认为您的阴影偏移量不正确。 应该是{10,10}像:
[layer setShadowOffset:CGSizeMake( 10 , 10 ) ];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.