Когда я опускаю вниз, чтобы обновить свой UIScrollView, мне нужно потянуть вниз к середине экрана - PullRequest
0 голосов
/ 09 мая 2019

У меня есть функция: didPullToRefresh(). Чтобы запустить эту функцию, я должен вытащить свой UIScrollView до середины экрана. Есть ли способ обновить данные, которые я хочу обновить, только потянув экран вниз на 50 пикселей? Спасибо

Вот код, который я сейчас использую:

var refreshControl: UIRefreshControl!
override func viewDidLoad()  {
   super.viewDidLoad()

   scrollView.alwaysBounceVertical = true
   scrollView.bounces  = true
   refreshControl = UIRefreshControl()
   refreshControl.addTarget(self, action: #selector(didPullToRefresh), for: .valueChanged)
   self.scrollView.addSubview(refreshControl)
 }

@objc func didPullToRefresh() {

 print("Refersh")

 // For End refrshing
refreshControl?.endRefreshing()  


 }

1 Ответ

0 голосов
/ 09 мая 2019

Не добавлять цель в элемент управления Обновить. Просто добавьте SubSubView в scrollview. В viewDidLoad:

scrollView.alwaysBounceVertical = true
scrollView.bounces  = true
scrollView.delegate = self

refreshControl = UIRefreshControl()
self.scrollView.addSubview(refreshControl)

Установить делегат scrollview на себя. И реализовать следующий метод делегата scrollview:

func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
    if scrollView.contentOffset.y <= -50 {
        refreshControl.beginRefreshing()
        print("Start Refresh Service")
    }
}

Напишите "refreshControl? .EndRefreshing ()" по окончании службы обновления.

...