2016-09-13 80 views
3

有谁知道我可以如何将box-shadow转换为Objective-C中UIButton的阴影?将CSS Box Shadow转换为iOS Shadow

例如这个影子:

box-shadow: 2px 0 0 0 #46d466,-2px 0 0 0 #46d466,0 2px 4px 0 rgba(0,0,0,.1),0 2px 8px 0 rgba(70,212,102,.7); 

回答

0
CAGradientLayer *gradient = [CAGradientLayer layer]; 
    gradient.frame = CGRectMake(0, 0, 5, testBtn.frame.size.height); 
    gradient.colors = [NSArray arrayWithObjects:(id)[UIColor clearColor].CGColor, (id)[UIColor colorWithRed:0 green:0 blue:0 alpha:0.8f].CGColor, nil]; 
    [testBtn.layer insertSublayer:gradient atIndex:0]; 

你可以给任何颜色或渐变。 希望这有助于。

CALayer * bgLayer = [CALayer layer]; 
bgLayer.frame = CGRectMake(0, 0, 5, testBtn.frame.size.height); 
bgLayer.backgroundColor = [UIColor grayColor].CGColor; 
[testBtn.layer insertSublayer: bgLayer atIndex:0]; 
+0

你可以给任何你想要的颜色.. – magid

0

您需要使用按钮层属性。您只能指定一种颜色(或使用上述建议的渐变),例如

button.layer.shadowColor = [UIColor grayColor].CGColor; 
button.layer.shadowOffset = CGSizeMake(0, 1.0); 
button.layer.shadowOpacity = 1.0; 
button.layer.shadowRadius = 0.0; 
2

UIButton有型CALayer.The层属性的特殊属性层是伟大的许多快速的特殊效果,一些内置的,就像阴影是其中的一个内置效果。

请找到下面的代码。

btn.layer.shadowColor = [UIColor grayColor].CGColor; 
btn.layer.shadowOffset = CGSizeMake(3.0, 3.0); 
btn.layer.shadowOpacity = 2.0; 
btn.layer.shadowRadius = 2.0; 

enter image description here

  1. shadowOffset:用于创建阴影的模糊半径。默认值 至3.
  2. shadowOpacity:图层阴影的不透明度。默认为(0, -3)。
  3. shadowRadius:用于渲染图层阴影的模糊半径(以点为单位)。

欲了解更多信息,请参阅developer site上的API。

或者你也可以改变阴影的偏移量。

btn.layer.shadowOffset = CGSizeMake(10.0, 10.0); 

enter image description here

您还可以更改影响的阴影如何出现模糊的阴影的半径。

btn.layer.shadowRadius = 10.0; 

enter image description here

希望它会为你工作!