Добавить элемент управления refre sh в горизонтальную прокрутку с элементом управления страницей - PullRequest
0 голосов
/ 13 июля 2020

Я использую горизонтальную прокрутку с разбиением по страницам, как это можно увидеть здесь: https://medium.com/@anitaa_1990 / create-a-horizontal-paging-uiscrollview-with-uipagecontrol-swift-4-xcode-9-a3dddc845e92

Обновление работает хорошо для каждого imageView (subview), но индикатор обновления отображается только тогда, когда я нахожусь на первом imageView.

В представлении, загрузившем функцию, я добавляю refre sh элемент управления scrollView

let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(refreshOptions(sender:)), for: .valueChanged)
scrollView.refreshControl = refreshControl

Позже я добавляю подпредставления со следующей функцией в scrollView

// show the page Control if at least two specials are shown
if UrlArray.count > 1{
      pageControl.isHidden = false
}
// add all images to the scrollView
for url in UrlArray {
      // 1.
      frame.origin.x = scrollView.frame.size.width *          CGFloat(origin)
      frame.size = scrollView.frame.size
      // 2.
      let imageView = UIImageView(frame: frame)
      imageView.contentMode = .scaleAspectFit
                
      // get the image for the url in the cache
      if let cachedVersion = cache.object(forKey: url as NSString) {
      imageView.image = cachedVersion.image
      }
      self.scrollView.addSubview(imageView) // add image to        scrollView
                
      // increase origin of next image by one
      // that way next image is horizontally next to the one before
      origin += 1
}
            
// 3.
scrollView.contentSize = CGSize(width: ((scrollView.frame.size.width) * CGFloat(origin)), height: (scrollView.frame.size.height))
scrollView.delegate = self
pageControl.numberOfPages = origin

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

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        // update page number when view was paged/scrolled
        let pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width
        pageControl.currentPage = Int(pageNumber)
    }

Надеюсь, кто-нибудь поможет мне получить индикатор refre sh, который будет отображаться в каждом подвиде.

...