点击手势由以下功能触发;
@objc func handleTapGR(tapGR: UITapGestureRecognizer) {
let tapLocation = tapGR.location(in: nil)
let moveNext = tapLocation.x > frame.width / 2 ? true : false
moveNext ? userCards.nextImage() : userCards.previousImage()
}
UserCardViewModel:
...
var imageIndex: Int = 0 { didSet{ imageIndexObserver?(imageIndex, userImages[imageIndex]) } }
var imageIndexObserver: ((Int, UIImage) -> () )?
mutating func nextImage() {
imageIndex = imageIndex + 1 >= userImages.count ? 0 : imageIndex + 1
}
mutating func previousImage() {
imageIndex = imageIndex - 1 < 0 ? userImages.count - 1 : imageIndex - 1
}
更改索引时需要触发相关的关闭。下面的对象在相关视图中。
var userCards: UserCardViewModel! {
didSet{
userCards.imageIndexObserver = { index, image in
self.showingImage.image = self.userCards.userImages[index]
print(index)
}
}
}
在前两次点击时,我无法在索引语句上方打印。当我在图像上按右侧时(相关数组数为2)
我正在这样初始化(从相关的viewcontroller)
convenience init(userCards: UserCardViewModel) {
self.init(frame: .zero)
self.userCards = userCards
configure()
}
点击手势由以下功能触发; @objc func handleTapGR(tapGR:UITapGestureRecognizer){let tapLocation = tapGR.location(in:nil)let moveNext = tapLocation.x> ...
我已在视图中添加手势。当您点击右侧索引时,计数将增加(左侧将减少),一旦达到数组计数,它将再次从0开始。