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
}
如您所见,我在这里使用三元运算符,使我能够在一行中完成所有递增和重置操作。
我是 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
}
如您所见,我在这里使用三元运算符,使我能够在一行中完成所有递增和重置操作。