2015-12-07 3 views
2

Вот мой код для инициализации UIActivityAndicatorView:UIActivityIndicatorView игнорирует свойство цвета

self.indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhiteLarge]; 
    self.indicator.color = [UIColor colorWithRed:252.0 green:113.0 blue:9.0 alpha:1.0]; 
    self.indicator.center = self.view.center; 
    [self.view addSubview:self.indicator]; 

После начала анимации - индикатор появляется в нужном месте, но с белым цветом. Почему свойство цвета игнорируется?

ответ

4

Значения поплавки между 0 и 1. Попробуйте это:

self.indicator.color = [UIColor colorWithRed:252.0/255.0 green:113.0/255.0 blue:9.0/255.0 alpha:1.0]; 
+0

Да - это сработало. Большое спасибо, - хитрые поплавки;) –

+0

@ ЕвгенийКравцов Прошу принять ответ, чтобы помочь другим, у кого такая же проблема. – dasdom

+0

Да - система позволит мне сделать это за несколько минут –

0

Я поражен, что выбранный ответ работал в декабре 2015 года, так как я не могу получить цвет, чтобы показать ничего, кроме белого независимо от того, что я делаю в iOS 9.2. Это для Большого белого прядильщика.

Что я нашел, это работает, чтобы запустить элемент управления с помощью альфа-диапазона 0, а затем через 100 миллисекунд измените цвет и покажите его. Приведенный ниже код от моего ATMHud вилки на GitHub:

- (void)setActivity:(BOOL)activity 
{ 
    hudView.showActivity = activity; 
    if (activity) { 
     [hudView.activity startAnimating]; 
     hudView.activity.alpha = 0; 
     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(),^
      { 
       // Workaround for bug where Apple ignores the color property 
       [self changeColor]; 
      }); 
    } else { 
     [hudView.activity stopAnimating]; 
    } 
} 
- (void)changeColor 
{ 
    hudView.activity.color = [UIColor blackColor]; 
    [UIView animateWithDuration:.250+_animateDuration animations: ^{ hudView.activity.alpha = 1; }]; 
} 
0

Важно заметить, что activityIndicatorViewStyle отменит color свойство согласно documentation:

Если вы установили цвет индикатора активности , он переопределяет цвет, предоставляемый свойством activityIndicatorViewStyle.

Таким образом, вы просто должны установить стиль, а затем цвет:

let activityIndicator = UIActivityIndicatorView() 
activityIndicator.activityIndicatorViewStyle = .whiteLarge 
let myColor = UIColor.colorWithRed(252.0/255.0, green: 113.0/255.0, blue: 9.0/255.0, alpha: 1.0) 
activityIndicator.color = myColor 
activityIndicator.startAnimating() 

И это должно быть.

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