У меня UIRefreshControl
в UITableViewController
. Есть ли способ определить, начинает ли пользователь перетаскивать представление вниз, чтобы обновить содержимое? Я не имею в виду метод beginRefreshing
. Я хочу иметь возможность определять, когда пользователь начинает тянуть вниз, например, когда круг заполняется до вызова метода beginRefreshing
. Это возможно?
UIRfreshControl Как определить, начинает ли пользователь перетаскивать вниз?
Ответы (1)
Поскольку вы реализовали протокол UITableViewDelegate
, вы также можете реализовать UIScrollViewDelegate
a>, который вызывается при прокрутке или перетаскивании.
Цель 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
Но когда я включаю метод scrollViewWillBeginDragging или scrollViewDidScroll, он будет вызывать эти методы при прокрутке в логове TableView. Как мне сослаться на методы только для элемента refreshControl, а не для самого TableView?
- person user2877744; 11.02.2016
При прокрутке посмотрите на значение
contentOffset.y
, если используется вид прокрутки (т. е. табличный вид). Это скажет вам, если пользователь прокручивает таблицу за пределами верхнего предела (= подготовка к обновлению) или просто прокручивает таблицу.
- person Nicolas Miari; 12.02.2016
@NicolasMiari, можешь привести пример?
- person Lance Samaria; 23.06.2020