Наложение текста UIRefreshControl на индикатор обновления
Я начинаю с программирования в XCode 5 с помощью iOS 7 SDK. И когда я создаю UITableViewController
с помощью UIRefreshControl
с атрибутом attribitedText, у меня есть текст, наложенный поверх графики UIRefreshControl
(анимация движения по кругу).
Но когда я вытаскиваю и отпускаю палец, текст переходит в нормальное положение. Почему это произошло?
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(updateDeviceList) forControlEvents:UIControlEventValueChanged];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Update Devices States"];
self.refreshControl = refreshControl;
Перед тем как спуститься до конца:
![Before pulling down to the end]()
После UIRefreshControl
release:
![After UIRefreshControl release]()
Ответы
Ответ 1
Пожалуйста, попробуйте это.
- (void)viewDidLoad
{
[super viewDidLoad];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull to Refresh"];
[refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
dispatch_async(dispatch_get_main_queue(), ^{
[self.refreshControl beginRefreshing];
[self.refreshControl endRefreshing];
});
}
Ответ 2
Вызов layoutIfNeeded
после установки заголовка
self.refreshControl = [[UIRefreshControl alloc] init];
[self.refreshControl addTarget:self action:@selector(updateDeviceList) forControlEvents:UIControlEventValueChanged];
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Update Devices States"];
[self.refreshControl layoutIfNeeded];
Ответ 3
Измените свой код на следующий
self.refreshControl = [UIRefreshControl new];
[self.refreshControl addTarget:self action:@selector(updateDeviceList) forControlEvents:UIControlEventValueChanged];
self.refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:@"Update Devices States"];
self.refreshControl = refreshControl;
Это должно решить вашу проблему.