我正在使用代码
NSArray *buttons = [NSArray arrayWithObjects: self.rollBtn,nil];
for(UIButton *btn in buttons)
{
btn.layer.shadowRadius = 3.0;
btn.layer.shadowOffset = CGSizeMake(-2.0, -3.0);
btn.layer.shadowOpacity = 0.5;
btn.layer.shadowColor = [UIColor blackColor].CGColor;
CAGradientLayer *btnGradient = [CAGradientLayer layer];
btnGradient.frame = btn.bounds;
btnGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:102.0f / 255.0f green:102.0f / 255.0f blue:102.0f / 255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:51.0f / 255.0f green:51.0f / 255.0f blue:51.0f / 255.0f alpha:1.0f] CGColor],
nil];
[btn.layer insertSublayer:btnGradient atIndex:0];
}
但我得到的只是一个带阴影的按钮。我已经链接了石英核心库,我已经导入它,我已经链接了按钮,我尝试过使用不同类型的按钮;我很难过。 任何想法出了什么问题? 提前谢谢。
答案 0 :(得分:1)
我遇到了同样的问题。您似乎正在构建iOS6 as I do。我发现在iOS6中引入的故事板的Autolayout正在引发这样的问题。如果您不使用此功能,请禁用它:
答案 1 :(得分:0)
您是否尝试设置渐变的位置和起点/终点?
btnGradient.locations = @[@(0.), @(1.)];
btnGradient.startPoint = (CGPoint){0., 0.};
btnGradient.endPoint = (CGPoint){0., 1.};
答案 2 :(得分:0)
我认为您可以尝试删除按钮中以前存在的CAGradientLayer
:
for(CALayer* layer in btn.layer.sublayers)
if ([layer isKindOfClass:[CAGradientLayer class]])
[layer removeFromSuperlayer];
然后添加自己的。