我是Swift的新手,一般编程和stackoverflow。
我有5个图像的数组,我想通过手势滑动来循环。从第一个开始,到第五个结束,然后让它再次返回第一个,能够一遍又一遍地循环通过1-5。
现在谷歌和教程的帮助我手势滑动工作,我让它随机显示每个图像之一。
以下是使用手势滑动使图像随机变化的线条示例:
//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"如果用户继续滑动,请重新开始。非常感谢任何帮助或指导。
谢谢
答案 0 :(得分:1)
您希望保留一个变量来控制字符串数组中的当前索引。然后根据滑动的方向,你想减少或递增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)
}
答案 1 :(得分:0)
要循环到数组,您可以添加一个变量来跟踪当前显示图像的数组索引,并在每次执行手势时增加它,然后,当索引等于5时,将其重置为0 。
以下是一个例子:
angular.module('app.services', [
])
.service('MyService', function ($http) {
var MyService = this;
this.aggregatedData = { content: [], filename: null };
this.apiUrl = 'https://example.com/api?userID=';
this.saveUrl = 'saveJson.php';
this.getData = function (url) {
return $http.get(url + $stateParams.userID).then(function (response) {
MyService.aggregatedData.content.push(response.data);
});
};
this.saveData = function (url, fileName) {
this.aggregatedData.filename = fileName;
return $http.post('saveJson.php', this.aggregatedData).then(function () {
// do something with the post response if desired
});
};
})
正如您所看到的,我在这里使用三元运算符,使我能够在一行中完成所有递增和重置。