点击按钮时按顺序显示json图像

时间:2016-08-12 11:03:13

标签: ios

我想要的是,我有五个按钮,我必须在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顺序显示图像,那就是关于我的问题,请你指导我完成这个操作,对此非常感谢,谢谢。

1 个答案:

答案 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)

您将根据要求检索图像,如下所示

enter image description here