我想要的是,我有五个按钮,我必须在json中检索五个图像(1,2,3,4,5),之后如果我必须点击第一个按钮意味着然后显示图像按1,2,3,4,5顺序,选择第二个按钮后再按2,3,4,5,1顺序显示图像,选择第三个按钮后再按3,4,5显示图像,1,2顺序,选择第四个按钮后再按4,5,1,2,3顺序显示图像,选择第五个按钮后再按5,1,2,3,4顺序显示图像,那就是关于我的问题,请你指导我完成这个操作,对此非常感谢,谢谢。
答案 0 :(得分:0)
您需要标记按钮以识别已按下的按钮,并且在相应的操作中,您需要检索标记以识别已点按的按钮。我不会向您描述如何标记按钮,因为您可以从堆栈溢出中获得答案。但是为了这个例子,我直接存储在图像中,你可以检索并将响应从JSON转换为相应的数组。
var images: [[String: AnyObject]] = [
[ "image1" : "www.image1.com", "id" : 1 ],
[ "image2" : "www.image2.com", "id" : 2 ],
[ "image4": "www.image4.com", "id" : 4 ],
[ "image3": "www.image3.com", "id" : 3 ],
[ "image5": "www.image5.com", "id" : 5 ]]
您需要在从JSON获取数组后对数组进行排序,如下所示:
images.sort {($0["id"] as? Int ) < ($1["id"] as? Int)}
对数组进行排序后,您可以实现根据您的要求检索图像数组的功能,如下所示:
func imagesForButtonIndex(_ buttonIndex: Int) -> [[String: AnyObject]] {
var sortedImages = images.filter { ($0["id"] as? Int) >= buttonIndex}
sortedImages.append(contentsOf:images.filter {($0["id"] as? Int) < buttonIndex})
return sortedImages
}
致电
imagesForButtonIndex(5)
您将根据要求检索图像,如下所示