Стековерфлауэрс!
И снова я обращаюсь к разуму улья за помощью. На этот раз это очень своеобразный вопрос, и, к сожалению, я не могу его понять.
Проблема связана с механизмом обновления с 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 в методе действия во всех возможных комбинациях размещения, но безрезультатно.
Интересно то, что если я вытащу представление коллекции и сначала запущу обновление, а затем попытаюсь запустить обновление вручную, оно будет правильно окрашено в белый цвет. Проблема с цветом появляется, только если я сначала пытаюсь обновить вручную.
Другие варианты, которые я пробовал:
- Пытался вызвать tintColorDidChange
- Пытался вручную изменить стиль базового ActivityIndicatorView
Я ценю любую помощь, которую кто-либо готов предложить :)