Search code examples
iosarraysswiftelementuipagecontrol

Display single element of array on multiple page controls


The following code is using page control to display images. I would like to use the same loop to display a single element of the array on each page. Right now the code displays a,b,c on all of the pages. I want it to display just one letter so page 1 a page 2 b etc.

@IBOutlet var lz: UILabel!
var judo = ["a","b","c"]
var output = ""

override func viewDidLoad() {
    super.viewDidLoad()
    scrol.delegate = self

    for image in 0...2 {
        output += " \(judo[image])"

        let imageTo = UIImage(named: "\(image).png")
        let imageView = UIImageView(image: imageTo)
        let xCord = view.frame.midX + view.frame.width * CGFloat(image)
        contenetWidth += view.frame.width
        scrol.addSubview(imageView)
    }
    lz.text = output
}

Solution

  • Use UIScrollViewDelegate method scrollViewWillEndDragging

    func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
            let index = targetContentOffset.pointee.x / view.frame.width
            self.lz.text = self.judo[Int(index)]
    }