2017-02-23 13 views
0

UIViewで画像を変更する左右のスワイプジェスチャーを実装しようとしています。UIViewスワイプジェスチャー画像を変更する

私は次のことを行っている:

if art_title.text == "Art Collection" { 

     var imageList = ["Boulder Bean","Mother of Earth","Bamboozled","Black Figures","Modest Angel"] 
     var index = 0 



      func leftSwipe(_ sender: UISwipeGestureRecognizer) { 

      if index < imageList.count - 1 { 
       index = index + 1 
       art_image.image = UIImage(named: imageList[index]) 
      } 
     } 

     func rightSwipe(_ sender: UISwipeGestureRecognizer) { 
      if index > 0 { 
       index = index - 1 
       art_image.image = UIImage(named: imageList[index]) 
      } 
     } 
    } 

私はすべての注釈にスワイプしようとしたとき、私は今、クラッシュを取得しています。これは完全に明確でない場合

Crash log

申し訳ありませんが、私はこれに新しいです:これはクラッシュログです。あなたが私に何かを明確にする必要があるかどうか私に知らせてください。私は完全なコードを掲示しましたHere

答えて

1

一般的に、画像のリストとあなたがリストにある場所を追跡するインデックス値を持っています。あなたは「スワイプ右の」あなたが左にスワイプするとき、インデックスが0(あなたの配列の最初の要素)を下回った場合、あなたは1

によってインデックスをインクリメント... 1によってインデックスをデクリメント

、 0にリセットしてイメージをそのまま残すか、配列の最後に「折り返し」ます。同様に、インデックスが配列内の要素の数よりも大きくなった場合は、「包む」ことでゼロにすることができます。例えばので

、:

// initialize 
var imageList = ["flower", "balloon", "cat", "dog"] 
var index = 0 

// set the first image 
art_image.image = UIImage(named: imageList[index]) 

// on swipe left (arrays are Zero based) 
if index < imageList.count - 1 { 
    index = index + 1 
    art_image.image = UIImage(named: imageList[index]) 
} 

// on swipe right 
if index > 0 { 
    index = index - 1 
    art_image.image = UIImage(named: imageList[index]) 
} 

、あなたの方法であなたを取得する必要がありますように...

+0

このアプリはMapViewアプリであり、これは特定の注釈用ですので、画像リストを作成できません。これは複数の画像を持つ唯一の注釈であり、現在クリックされている注釈に基づいて正しい画像を選択しています。 –

+0

実際の違いはありません...画像名がハードコードされたリストではなく、複数の画像を持つこのアノテーションを取得した場合、各画像への参照を取得してリストに入れます。 UIImage(名前は:)とは異なる方法でそれらを参照する必要があるかもしれませんが、プロセスは同じです。 – DonMag

+0

私はそれを実装しようとしましたが、いくつかのエラーが発生しているという上記のコードを追加しました。 –

関連する問題