Подтвердить что ты не робот

Наложение текста 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

4b9b3361

Ответ 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;

Это должно решить вашу проблему.