我必须在uiview的右边和底部放一个阴影。我在界面构建器中执行此操作。但是我看到阴影掉到了顶部。已经有不同的尺寸。但是无法得到它。
layer.masksToBound=No
layer.shadowOpacity=0.15
layer.shadowRadius=2
layer.shadowOffSet={10,-10} //Values being set in Interfacebuilder.
仍然会在顶部留下阴影。我应该怎样做才能深入了解。
答案 0 :(得分:101)
尝试以下代码,它可能对您有所帮助
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;
我测试了这段代码,它的工作和输出是:
答案 1 :(得分:6)
您好我使用下面的代码,它会为您提供您想要的阴影。
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;
maskToBounds也是imp,因为它禁止剪切比视图边界更远的子层。如果你把它设为YES然后你就不会看到阴影,因为它会剪切子图层,否则它会允许扩展图层。
答案 2 :(得分:2)
在 Swift 3 中,CGSizeMake
不再存在。它已更改为CGSize(width: 20, height: 10)
。因此shadowOffset
可以在 Swift 3 :
myView.layer.shadowOffset = CGSize(width: 20, height: 10)
答案 3 :(得分:1)
我发现这些值给出了一个很好的结果:
myView.layer.shadowColor = UIColor.black.cgColor
myView.layer.shadowOpacity = 0.25
myView.layer.shadowRadius = 3
myView.layer.shadowOffset = CGSize(width: 1, height: 1) // shadow on the bottom right
答案 4 :(得分:0)
我认为你的阴影偏移不正确。它应该是{10,10},如:
[layer setShadowOffset:CGSizeMake( 10 , 10 ) ];