首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CAGradientLayer的问题

CAGradientLayer的问题
EN

Stack Overflow用户
提问于 2012-10-28 16:13:07
回答 3查看 499关注 0票数 0

我正在使用代码

代码语言:javascript
复制
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];            
}

但我得到的只是一个带阴影的按钮。我链接了quartz core库,我导入了它,我链接了按钮,我尝试使用不同类型的按钮;我被难住了。你知道哪里出问题了吗?提前谢谢。

EN

回答 3

Stack Overflow用户

发布于 2012-11-14 04:34:16

我也面临着同样的问题。看起来您是在为iOS6 as I do构建。我发现iOS6中引入的故事板的自动布局就是导致这些问题的原因。如果您不使用此功能,请将其禁用:

Xcode中的

  1. 打开序列图像板
  2. 的序列图像板的打开属性(右窗格,在“界面生成器文档”部分中显示“使用自动布局”。
票数 1
EN

Stack Overflow用户

发布于 2012-10-28 17:13:33

您是否尝试设置渐变的位置和起点/终点?

代码语言:javascript
复制
btnGradient.locations  = @[@(0.), @(1.)];
btnGradient.startPoint = (CGPoint){0., 0.};
btnGradient.endPoint   = (CGPoint){0., 1.};
票数 0
EN

Stack Overflow用户

发布于 2012-10-28 17:17:41

我认为您可以尝试删除按钮中以前存在的任何CAGradientLayer

代码语言:javascript
复制
for(CALayer* layer in btn.layer.sublayers)
    if ([layer isKindOfClass:[CAGradientLayer class]])
        [layer removeFromSuperlayer];

然后添加你自己的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13107320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档