2015-06-20 2 views
1

Так что я правильно установил тень слоя UIView в первый раз (он отлично выглядит), но когда я пытаюсь изменить цвет (ничего больше, просто layer.shadowColor), он не будет обновляться в вид. Он по-прежнему показывает исходный цвет. Я уже пробовал layer setNeedsDisplay без везения.CALayer shadowColor не меняется

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 несколько раз?

+0

Пробовали и отлично работает для меня .. вы уверен, что вы не присваиваете цвет 'self.profileIconShadow.layer.shadowColor' где-то el как таковые? – 0yeoj

+0

@ 0yeoj У меня есть код, где я сначала устанавливаю его черным, а затем, когда он должен меняться на красный. – Victor

ответ

1

Я попробовал ваш код прошлой ночью, я даже сделал анимацию включения и выключения из вашего кода, прежде чем я пошел спать .. ха-ха ..

Вопрос: Can I not change shadowColor multiple times?, конечно, вы можете .. ;)

Единственная потенциальная причина, почему ваш слой не обновляемый, может быть, не выполняется в главном потоке, чтобы убедиться, попробуйте следующее:

if ([entry[@"isInactive"] boolValue]) 
{ // Original 
    dispatch_async(dispatch_get_main_queue(), ^{ 

     self.profileIconShadow.layer.shadowColor = [UIColor redColor].CGColor; 

     [self.profileIconShadow.layer setNeedsDisplay]; 

    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^