Странная анимация в UIRfreshControl при вытягивании

Я только что добавил обычный UIRfreshControl в свой UITableView, но при извлечении он делает странную анимацию рефрейминга.

Кто-нибудь знает, почему это может произойти? я не изменяю вставки tableView или что-то еще.

EDIT: tableView является подвидом в UIViewController (не UITableViewController). Добавлено как:

self.refreshControl = [[UIRefreshControl alloc] init];
self.refreshControl.tintColor = [UIColor blackColor];
[self.refreshControl addTarget:self action:@selector(refresh:) forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:self.refreshControl];

person saky    schedule 05.08.2014    source источник
comment
Можете ли вы показать нам код UITableViewController? Или показать, как вы настраиваете представление таблицы в раскадровке?   -  person Michał Ciuba    schedule 05.08.2014
comment
Отредактировал вопрос, не используя UITableViewController;)   -  person saky    schedule 05.08.2014
comment
Ну, это стандартный способ настройки управления обновлением. Как же тогда создать табличное представление?   -  person Michał Ciuba    schedule 05.08.2014
comment
Я делаю все в коде, ничего странного, я думаю... self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds] [self.view addSubview:self.tableView];   -  person saky    schedule 05.08.2014


Ответы (1)


Из документов UIRefreshControl:

Поскольку элемент управления обновлением специально разработан для использования в табличном представлении, управляемом контроллером табличного представления, его использование в другом контексте может привести к неопределенному поведению.

Вы можете добавить «фиктивный» UITableViewController и назначить ему tableView (кредиты на этот ответ).

UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = self.myTableView;
tableViewController.refreshControl = self.refreshControl;

Или, в качестве альтернативы, вы можете использовать пользовательскую замену для UIRefreshControl — их много в GitHub. Таким образом, вы также можете настроить элемент управления обновлением, если хотите.

person Michał Ciuba    schedule 05.08.2014
comment
Пробовал с манекеном UITableViewController, не работает (та же странная анимация). Я также пытался использовать другие пользовательские UIRefreshControl, и они работают правильно, но я хочу знать, почему UIRefreshControl делает это, и есть ли способ исправить это, чтобы использовать его... - person saky; 05.08.2014
comment
На анимированном GIF я вижу, что вы используете какой-то заголовок таблицы (?) - может быть, это причина? Или, может быть, попытаться создать UITableView в loadView методе UIViewController вместо того, чтобы добавлять его в качестве подвида в self.view? Я просто предполагаю, я не знаю, почему это не работает, зная только код, который вы разместили - person Michał Ciuba; 06.08.2014
comment
Синяя вещь - это NavBar - person saky; 06.08.2014