【问题标题】:Trouble with layer.shadowColor and UIColorslayer.shadowColor 和 UIColors 的问题
【发布时间】:2012-09-10 20:22:00
【问题描述】:

试图改变阴影的颜色。这有效:

self.layer.shadowColor = [[UIColor blueColor] CGColor];

但我想让它成为自定义颜色,所以我尝试了:

self.layer.shadowColor = [[UIColor colorWithRed:191/255.0f green:199/255.0f blue:203/255.0f alpha:1] CGColor];

这不起作用。

我做错了什么?

编辑:

我的 init 方法中的代码 sn-p:

self.layer.shadowOpacity = 0;
self.layer.shadowColor = [[UIColor blueColor] CGColor];
//self.layer.shadowColor = [[UIColor colorWithRed:191/255.0f green:199/255.0f blue:203/255.0f alpha:1] CGColor];
self.layer.shadowOffset = CGSizeMake(0,0);
self.layer.shadowRadius = 4;

编辑 2:

奇怪的是我扩展了 UIColor 以包含一些我的自定义颜色;如果我使用:

self.layer.shadowColor = [[UIColor pointColorBlue] CGColor];

来自我的 UIColor+myColor:

+(UIColor *) pointColorBlue
{
    return [UIColor colorWithRed:50/255.0f green:50/255.0f blue:255/255.0f alpha:1];
}

效果很好。

【问题讨论】:

  • “不起作用”到底是什么意思?
  • 为我工作 - 你的 shadowOpacityshadowOffset 在那个观点上的价值是什么?它以什么颜色显示? (您指定的颜色相当浅。)
  • 问题已更新。当我尝试 RGB 值时,我没有得到任何阴影。

标签: objective-c ios core-graphics


【解决方案1】:

呸!想通了:图形专家给了我几乎与背景颜色相同的 RGB 值!

【讨论】:

    【解决方案2】:

    这些应该可以工作。

    但你必须做到以下几点:

    CALayer newLayer = [CALayer layer];
    newLayer.shadowColor = [[UIColor blueColor] CGColor];
    
    self.layer = newLayer;
    [self.layer setWantsLayer:YES];
    

    重置主层很重要,否则它不会被绘制。

    【讨论】:

    • self.layer 是只读属性,不能为其分配层。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多