2016-08-12 14 views
-1

私は5つのボタンがあり、私は5つの画像(1,2,3,4,5)をjsonで取り出す必要があります。第1のボタン手段をタッピングすることに続いて1,2,3,4,5オーダーで画像を表示し、第2のボタン手段を選択した後、第3のボタン手段を選択した後に2,3,4,5,1オーダーで画像を表示する4番目のボタンを選択した後、3,4,5,1,2の順番で画像を表示し、次に4,5,1,2,3の順番で画像を表示し、fivethボタンの選択後に画像を5で表示する、1,2,3,4オーダー、私の質問に関するすべてのthats、この操作を完了するために私を導くことができる、これは非常に感謝のための任意のソリューションは、ありがとう。ボタンをタップしながら順番にjson画像を表示する

+0

下に示すように、あなたのJSON構造が好きなものを見ない要件に従って画像を取得するのでしょうか? – ldindu

+0

CODE: [{ 「画像1" :「www.image1.com」、 \t「ID」:1、 \t}、{ \t「画像2" :「www.image2.com」、 \t 「ID」:2、 }、{ 「画像3" : 『www.image3.com』、 \t「ID」:3、 \t}、{ \t「のimage4" :「www.image4.com "、 \t" id ":4, }、{ \t「image5" :「www.image5.com」、 \t 『ID』:5、 }] –

答えて

0

どのボタンが押されたのかを識別するためにボタンにタグを付ける必要があります。それぞれのアクションでは、タップされたボタンを識別するためにタグを取得する必要があります。スタックのオーバーフローから答えを得ることができるように、ボタンにタグを付ける方法については説明しません。しかし、この例のために、私はイメージに直接的に格納しています。JSONからのレスポンスを取得してそれぞれの配列に変換できます。

あなたは次のように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 ]] 

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を知っているが、迅速に、いくつかのコードは、唯一残っている事ができない理解私のために理解してください、あなたはこれを説明してください、私は学ばなければならない –

関連する問題