我在一个XIB中有四个imageview内容,一个按钮覆盖了我的所有XIB。我想在用户点击按钮时进行显示,显示第一个imageview,隐藏下一个点击,显示第二个imageview,依此类推,直到显示/隐藏我的所有imageview。什么是最有效的方法?
答案 0 :(得分:2)
将您的所有UIImageViews
保存到array
,并且当前将imageView
显示到变量中,它看起来像这样:
var imageViews: [UIImageView] = []
var currentImageViewIndex = 0 {
didSet {
if currentImageViewIndex >= imageViews.count { currentImageViewIndex = 0 }
imageViews[oldValue].isHidden = true
imageViews[currentImageViewIndex].isHidden = false
}
}
func handleTap() {
currentImageViewIndex += 1
}
答案 1 :(得分:0)
我建议您使用一个状态变量,该变量包含一个列出各种状态的枚举(firstImageVisible,secondImage ....),然后您可以在枚举内使用一个函数,该函数切换到nextState(成为按钮操作的目标)您还可以轻松地遍历枚举的状态,请查看CaseIterable
协议的文档。通常,在状态上有一个属性观察器(didSet)是一个方便的地方,用于更新每次状态更改时都需要更改的UI的其他部分。