2016-08-12 63 views
-1

我想要的是,我有五個按鈕,我必須檢索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順序,多數民衆贊成在我的問題,請你指導我做了這個操作,任何解決方案,非常感謝,謝謝。顯示json圖像的順序,同時點擊按鈕

+0

那麼你的JSON結構是什麼樣子? – ldindu

+0

CODE: [{ 「image1" 的:「www.image1.com」, \t「ID「:1, \t },{ \t「圖像2" :「www.image2.com」, \t 「ID「:2, },{ 「圖像3" :‘www.image3.com’, \t「ID」:3, \t },{ \t「圖像4" :「www.image4.com 「, \t」id「:4, },{ \t「圖像5" :「www.image5.com」, \t‘ID’:5, }] –

回答

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

+0

你好idindu,我只知道目標C,但在迅疾的一些代碼才明白剩下的事情就不能對我來說是理解的,所以你可以解釋一下,我必須學習 –