UIView 滑动手势改变图像

UIView Swipe Gesture Changing images

我正在尝试实现左右滑动手势来更改 UIView 上的图像。

我做了以下事情:

if art_title.text == "Art Collection" {
        var imageList = ["Boulder Bean","Mother of Earth","Bamboozled","Black Figures","Modest Angel"]
        var index = 0

        func leftSwipe(_ sender: UISwipeGestureRecognizer) {

            if index < imageList.count - 1 {
                index = index + 1
                art_image.image = UIImage(named: imageList[index])
            }
        }

        func rightSwipe(_ sender: UISwipeGestureRecognizer) {
            if index > 0 {
                index = index - 1
                art_image.image = UIImage(named: imageList[index])
            }
        }
    }

我现在尝试在任何注释上滑动时遇到崩溃。

通常,您会有一个图像列表和一个索引值来跟踪您在列表中的位置。

当您 "swipe right" 将索引减 1...向左滑动时,索引将增加 1。

如果索引低于 0(数组的第一个元素),您可以将其重置为 0 并保持图像不变,或者 "wrap it around" 到数组的末尾。同样,如果索引大于数组中的元素数,则可以将 "wrap it around" 归零。

因此,例如:

// initialize
var imageList = ["flower", "balloon", "cat", "dog"]
var index = 0

// set the first image
art_image.image = UIImage(named: imageList[index])

// on swipe left (arrays are Zero based)
if index < imageList.count - 1 {
    index = index + 1
    art_image.image = UIImage(named: imageList[index])
}

// on swipe right
if index > 0 {
    index = index - 1
    art_image.image = UIImage(named: imageList[index])
}

等等...

这应该会让你上路。