CALayer shadowColor没有改变

时间:2015-06-20 17:25:48

标签: ios objective-c calayer shadow

所以我第一次正确地设置了一层UIView的阴影(它显示完全正常)但是当我尝试改变颜色时(没有别的,只有layer.shadowColor)它赢了#t在视图中更新。它仍然显示原始颜色。我已经试过了layer setNeedsDisplay而没有任何运气。

self.profileIconShadow.layer.cornerRadius = self.profileIcon.frame.size.height / 2;
self.profileIconShadow.layer.shadowColor = [UIColor blackColor].CGColor;
self.profileIconShadow.layer.shadowOpacity = 1.0f;
self.profileIconShadow.layer.shadowRadius = self.profileIcon.frame.size.width * .025;
self.profileIconShadow.layer.shadowOffset = CGSizeZero;

// if ([entry[@"isInactive"] boolValue]) { // Original
if (true) { // Overrode temporarily to test it out
    self.profileIconShadow.layer.shadowColor = [UIColor redColor].CGColor;
    [self.profileIconShadow.layer setNeedsDisplay];
}

根据需要第一次正确设置阴影。但后来我尝试改变它仍然保持黑色而不是变成红色的颜色。

这应该是它的样子。

编辑#2:我注意到如果我在第一次制作阴影时注释掉黑色,稍后它会变为红色。我可以多次更改shadowColor吗?

1 个答案:

答案 0 :(得分:1)

我昨晚尝试了你的代码,我甚至在我睡觉前制作了一段关闭代码的动画。哈哈..

问题:HashMap,当然可以......;)

你的图层没有更新的唯一潜在原因可能是它没有在主线程中执行,以确保尝试这个:

Can I not change shadowColor multiple times?