UIRfreshControl Как определить, начинает ли пользователь перетаскивать вниз?

У меня UIRefreshControl в UITableViewController. Есть ли способ определить, начинает ли пользователь перетаскивать представление вниз, чтобы обновить содержимое? Я не имею в виду метод beginRefreshing. Я хочу иметь возможность определять, когда пользователь начинает тянуть вниз, например, когда круг заполняется до вызова метода beginRefreshing. Это возможно?


person user2877744    schedule 11.02.2016    source источник


Ответы (1)


Поскольку вы реализовали протокол UITableViewDelegate, вы также можете реализовать UIScrollViewDelegate, который вызывается при прокрутке или перетаскивании.

Цель C

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

or

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

Свифт

func scrollViewWillBeginDragging(scrollView: UIScrollView)

or

func scrollViewDidScroll(scrollView: UIScrollView)

Реализуйте UIRefreshControl без UITableViewController Добавьте прокрутку и поместите этот код в свой viewDidLoad

let refreshControl = UIRefreshControl()
 refreshControl.attributedTitle = NSAttributedString(string: "Pull to refresh")
        refreshControl.addTarget(self, action: "refresh:", forControlEvents: UIControlEvents.ValueChanged)
        ScrollView.addSubview(refreshControl)
        ScrollView.contentSize = CGSizeMake(320, 800)

Добавьте этот метод

func refresh (sender:AnyObject)
    {
        print("Refresh")
    }
person Rahul    schedule 11.02.2016
comment
Но когда я включаю метод scrollViewWillBeginDragging или scrollViewDidScroll, он будет вызывать эти методы при прокрутке в логове TableView. Как мне сослаться на методы только для элемента refreshControl, а не для самого TableView? - person user2877744; 11.02.2016
comment
При прокрутке посмотрите на значение contentOffset.y, если используется вид прокрутки (т. е. табличный вид). Это скажет вам, если пользователь прокручивает таблицу за пределами верхнего предела (= подготовка к обновлению) или просто прокручивает таблицу. - person Nicolas Miari; 12.02.2016
comment
@NicolasMiari, можешь привести пример? - person Lance Samaria; 23.06.2020