UIRefreshControl в ландшафте

У меня есть UIRefreshControl в верхней части таблицы.

Экран находится в альбомной ориентации.

Проблема в том, что я не могу вытащить достаточно далеко, чтобы вызвать обновление, потому что в Пейзаже слишком мало места. Есть ли способ отрегулировать сумму, которую вы должны снести?

Ответы

Ответ 1

Как вы можете настроить, как далеко вы должны тянуть, это изменить высоту UITableView. UIRefreshControl настраивает максимальную высоту искажения пропорционально высоте таблицыView. Если вы не можете изменить высоту tableView, пожалуйста, напишите ошибку с подробной информацией о вашей ситуации, и мы надеемся, будущий выпуск iOS.

Кроме того, попытались ли вы быстрее свернуть?

Ответ 2

Помните, что ваше табличное представление является всего лишь подклассом UIScrollView. В своем контроллере реализуйте метод scrollViewDidScroll и вызовите -beginRefreshing в свой UIRefreshControl, как показано ниже.

Но анимация UIRefreshControl при переходе к освежающему состоянию не будет такой гладкой, как вы ожидали. Но он работает.

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y < -98 && ![self.refresher isRefreshing]) {
        [self.refresher beginRefreshing];
        //do all the work
        [self.refresher endRefreshing];
    }
}

Ответ 3

если для вашего contentsize недостаточно высоты для вытягивания, вам может потребоваться включить его вертикаль, используя self.collectionView.alwaysBounceVertical = YES;