У меня есть вопрос, и я пытаюсь решить эту проблему уже несколько дней, но, к сожалению, это не работает. Я использую UIScrollView для горизонтальной подкачки. Это на самом деле работает, но:
Проблема 1: что бы я ни делал, предстоящие изображения уже показаны на текущем слайде.
Кроме того, я также хотел бы иметь различные ярлыки, которые относятся к показанным изображениям. Это означает, что каждое изображение имеет уникальную метку из массива. При пролистывании правая метка должна отображаться под изображением в UIScrollView.
Я прилагаю код, снимок экрана, как он выглядит прямо сейчас, и пример того, как я хотел бы получить его. Левая и правая кнопки примера не должны быть там. Если это легко, не стесняйтесь рассказать мне, как это сделать. :)
Большое спасибо за вашу помощь, ребята!
class HomeViewController: UIViewController, UIScrollViewDelegate {
//Mark: Properties
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var pageControl: UIPageControl!
var images: [String] = ["Project1", "Project2", "Project3", "Project4"]
var frame = CGRect(x:0, y:0, width:0, height:0)
let titles: [String] = ["Get High", "Get Tipsy", "Get Trippy", "Get fucked"]
override func viewDidLoad() {
super.viewDidLoad()
// Specify how many pages it has = to page control numbers
pageControl.numberOfPages = images.count
for index in 0..<images.count {
frame.origin.x = scrollView.frame.size.width * CGFloat(index) // width x amount of pages
frame.size = scrollView.frame.size
// initialize image view "add on top of scroll view"
let imgView = UIImageView(frame: frame)
imgView.image = UIImage(named: images[index])
self.scrollView.addSubview(imgView)
}
// Setting the size of the scroll view
scrollView.contentSize = CGSize(width: (scrollView.frame.size.width * CGFloat(images.count)), height: scrollView.frame.size.height)
scrollView.delegate = self
}
// Scrollview Method
// --> Set new image and new page Control position
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
var pageNumber = scrollView.contentOffset.x / scrollView.frame.size.width // what actual page we are on
pageControl.currentPage = Int(pageNumber)
}
}