我的项目中有13张名为150px;
至1
的图像。我希望13
在单击UIImageView
时从图像1更改为2,然后是3,然后是4,依此类推。
单击UIButton
时的当前代码:
UIButton
因此,我知道我需要将值存储在变量中,并将其初始设置为1。每次单击@IBAction func button(sender: Any) {
cardImage.image = UIImage(named: 1)
}
时,请将值添加1。该值需要以某种方式链接到UIButton
。我该如何实现?
答案 0 :(得分:1)
因此,在视图控制器中创建一个文件名数组,并在该数组中创建一个索引:
class ViewController: UIViewController {
lazy var filenames: [String] = {
return Array(1...13).map {String($0)}
}()
var filenameIndex = 0
然后编写一个函数以加载一张图像并增加索引:
func fetchImage() -> UIImage? {
let result = UIImage(named: filenames[filenameIndex])
filenameIndex = (filenameIndex + 1) % filenames.count
return result
}
(您还可以使用Yury的方法来管理整数索引并将其转换为文件名,但是我的方法将使您可以管理循环显示任何图像文件名的数组,无论它们是否为序号。)
答案 1 :(得分:0)
您需要将当前的图像编号值存储在变量中,并在按下按钮时增加。
let imagesCount: Int = 13
var currentImageNumber: Int = 1
@IBAction func didPressButton(sender: Any) {
cardImage.image = UIImage(named: "\(currentImageNumber)")
currentImageNumber += 1
if currentImageNumber > imagesCount {
currentImageNumber = 1
}
}
或者您可以使用没有if
条件的较短版本。
let imagesCount: Int = 13
var currentImageNumber: Int = 0
@IBAction func didPressButton(sender: Any) {
cardImage.image = UIImage(named: "\(currentImageNumber + 1)")
currentImageNumber += 1
currentImageNumber %= imagesCount
}