Я использую горизонтальную прокрутку с разбиением по страницам, как это можно увидеть здесь: 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, который будет отображаться в каждом подвиде.