Проблемы с цветом UIRfreshControl

Стековерфлауэрс!

И снова я обращаюсь к разуму улья за помощью. На этот раз это очень своеобразный вопрос, и, к сожалению, я не могу его понять.

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

-viewDidLoad

    _publicationsRefreshControl = [[UIRefreshControl alloc] init];
NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:NSLocalizedString(localizationRefreshControlTitle, nil) attributes:@{NSFontAttributeName : [UIFont fontWithName:fontLatoRegular size:14], NSForegroundColorAttributeName : [UIColor whiteColor]}];
_publicationsRefreshControl.attributedTitle = attributedTitle;
_publicationsRefreshControl.tintColor = [UIColor whiteColor];
[_publicationsRefreshControl addTarget:self action:@selector(refreshPublications:) forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:_publicationsRefreshControl];

Это правильно инициализирует UIRfreshControl и действительно работает, когда вы опускаете CollectionView.

Когда я использую следующий метод:

- (void)action {
[_publicationsRefreshControl beginRefreshing];
[_collectionView setContentOffset:CGPointMake(0, _collectionView.contentOffset.y - _publicationsRefreshControl.frame.size.height) animated:YES];
[_publicationsRefreshControl sendActionsForControlEvents:UIControlEventValueChanged]; }

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

Интересно то, что если я вытащу представление коллекции и сначала запущу обновление, а затем попытаюсь запустить обновление вручную, оно будет правильно окрашено в белый цвет. Проблема с цветом появляется, только если я сначала пытаюсь обновить вручную.

Другие варианты, которые я пробовал:

  1. Пытался вызвать tintColorDidChange
  2. Пытался вручную изменить стиль базового ActivityIndicatorView

Я ценю любую помощь, которую кто-либо готов предложить :)


person D6mi    schedule 16.01.2015    source источник
comment
ты заставил его работать?   -  person va05    schedule 30.08.2015
comment
Боюсь, что нет. Я просто не показываю элемент управления обновлением при обновлении вручную.   -  person D6mi    schedule 31.08.2015


Ответы (1)


Пытаться:

[_myRefreshControl endRefreshing];
_myRefreshControl.tintColor = [UIColor whiteColor];

Работал на меня!

person user2687305    schedule 02.07.2015