在uiview的右下角放一个阴影

时间:2014-04-18 07:28:12

标签: ios calayer shadow

我必须在uiview的右边和底部放一个阴影。我在界面构建器中执行此操作。但是我看到阴影掉到了顶部。已经有不同的尺寸。但是无法得到它。

layer.masksToBound=No
layer.shadowOpacity=0.15
layer.shadowRadius=2
layer.shadowOffSet={10,-10}   //Values being set in Interfacebuilder.

仍然会在顶部留下阴影。我应该怎样做才能深入了解。

5 个答案:

答案 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;

我测试了这段代码,它的工作和输出是:

enter image description here

答案 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

enter image description here

答案 4 :(得分:0)

我认为你的阴影偏移不正确。它应该是{10,10},如:

[layer setShadowOffset:CGSizeMake( 10 , 10 ) ];