У меня была та же проблема, я решил ее, установив атрибутированный текст с пробелом для управления обновлением непосредственно после управления обновлением инициализации.
_refreshControl = [[UIRefreshControl alloc]init];
[_refreshControl setAttributedTitle:[[NSAttributedString alloc]initWithString:@" "]];
После этого установка нового атрибутированного текста для управления обновлением прошла без проблем.
[[self refreshControl] setAttributedTitle:[[NSAttributedString alloc]initWithString:[NSString stringWithFormat:@"Последнее обновление: %@", [dateFormat stringFromDate:[_post dateUpdated]]]]];
ОБНОВЛЕНИЕ
Я заметил, что проблема возвращается, когда я использую attrsDictionary:
этот код работает нормально
NSAttributedString* attributedString = [[NSAttributedString alloc]initWithString:string];
[[self refreshControl] setAttributedTitle: attributedString];
и это заставляет заголовок refreshControl появляться сразу после загрузки представления
NSAttributedString* attributedString = [[NSAttributedString alloc]initWithString:string attributes:attrsDictionary];
[[self refreshControl] setAttributedTitle: attributedString];
Я еще не нашел решения.
ОБНОВЛЕНИЕ
Наконец-то найдено решение, после того, как updatecontrol init установил атрибутную строку также с атрибутами: attrsDictionary
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects:[UIColor appDarkGray], [UIFont fontWithName:@"OpenSans-CondensedLight" size:14.0f], nil] forKeys:
[NSArray arrayWithObjects:NSForegroundColorAttributeName, NSFontAttributeName, nil]];
[_refreshControl setAttributedTitle:[[NSAttributedString alloc]initWithString:@" " attributes:attrsDictionary]];
поэтому после этого нет проблем с установкой нового заголовка элемента управления обновлением.
person
Maxime Ashurov
schedule
13.10.2015