Swift 2.0 - 使用手势滑动循环浏览数组中的 5 张图像

Swift 2.0 - Using a gesture swipe to cycle through 5 images in an array

我是 Swift 的新手,也是一般编程和 Whosebug 的新手。

我有一个包含 5 张图像的数组,我想通过手势滑动来循环浏览这些图像。从第一个开始,到第五个结束,然后再 return 到第一个,能够一遍又一遍地循环 1-5。

现在,在 google 和教程的帮助下,我可以使用手势滑动,并且每次滑动都会随机显示其中一张图像。

下面是使用手势滑动使图像随机变化的线条示例:

//placed under class ViewController: UIViewController

@IBOutlet weak var picture: UIImageView!

var myArray:[String] = ["img1", "img2", "img3", "img4", "img5"]

//placed under override func didReceiveMemoryWarning() & super...()

@IBAction func pictureSwipe(sender: UISwipeGestureRecognizer) {
   let pictureRandom:Int = Int(arc4random_uniform(5))
   let pictureString:String = self.myArray[pictureRandom]
   self.picture.image = UIImage(named: pictureString)

}

即使有人可以为我指明正确的方向。此代码有效,但我不想要随机图像。我正在寻找它从 "img1" 循环到 "img5" 并在用户继续滑动时重新开始。非常感谢任何帮助或指导。

谢谢

您需要保留一个变量来控制字符串数组中的当前索引。然后根据滑动的方向将其递减或递增 1。试试这样的操作。

private var myArray = ["img1", "img2", "img3", "img4", "img5"]
private var index = 0
@IBOutlet weak var picture: UIImageView!

@IBAction func pictureSwipe(sender: UISwipeGestureRecognizer) {
    let updateIndex = sender.direction == .Left ? 1 : -1
    index += updateIndex

    if index >= myArray.count {
        // Went past the array bounds. start over
        index = 0
    } else if index < 0 {
        // Jump to the back of the array
        index = myArray.count - 1
    }

    let pictureString = myArray[index]
    self.picture.image = UIImage(named: pictureString)
}

要循环到您的数组,您可以添加一个变量来跟踪当前显示图像的数组索引,并在每次执行手势时增加它,然后,当索引等于 5 时,将其重置到 0。

这是一个例子:

//placed under class ViewController: UIViewController

var index = 0

@IBOutlet weak var picture: UIImageView!



var myArray:[String] = ["img1", "img2", "img3", "img4", "img5"]

//placed under override func didReceiveMemoryWarning() & super...()

@IBAction func pictureSwipe(sender: UISwipeGestureRecognizer) {


   let pictureString:String = self.myArray[index]
   self.picture.image = UIImage(named: pictureString)

   index = (index < myArray.count-1) ? index+1 : 0

}

如您所见,我在这里使用三元运算符,使我能够在一行中完成所有递增和重置操作。