2016-08-23 8 views
3

ギャラリーアプリで画像をスワイプするコードを記述しました。大きな画像にポップアップされると、画像を左右にスワイプして、次のコードを書いています。しかし、まだ動作していません。コードに何が間違っているとお考えですか?大きな画像にポップアップされたときに画像を左右にスワイプする方法

override func viewDidLoad() { 
     super.viewDidLoad() 

self.imageview.image = self.Image 


    var leftSwipe = UISwipeGestureRecognizer(target:self, action: Selector("handleSwipes:")) 
     var rightSwipe = UISwipeGestureRecognizer(target:self, action: Selector("handleSwipes:")) 


     leftSwipe.direction = .Left 
     rightSwipe.direction = .Right 

     view.addGestureRecognizer(leftSwipe) 
     view.addGestureRecognizer(rightSwipe) 
} 

func handleSwipes(sender: UISwipeGestureRecognizer) { 
     if (sender.direction == .Left){ 
      self.imageview.image = self.Image 
     } 

     if (sender.direction == .Right){ 
      self.imageview.image = self.Image 
     } 

    } 

答えて

1

handleSwipes funcがself.Imageを呼び出し、それが割り当てられているので、それが更新されることはありません(すなわち、self.Image 1枚の画像自体)viewdidload.Justでは、左右のスワイプで異なる画像を渡すだけで合格左と右のスワイプで異なる画像。 (sender.direction == .LEFT){ self.imageview.image = self.Image }もし

if (sender.direction == .Right){ 
     self.imageview.image = UIImage(named: "myImage.png"); 
    } 
+0

と呼ばれていると仮定viewDidLoadで呼び出された関数SwipeGestureRecognizerの戻り値の型ですか? – Venky

+0

私の答えを編集する – datha

1

もしUIImageの配列がどうあるべきかimagesArray

var currentIndex = 0{ 
    didSet{ 
    self.imageview.image = imagesArray[currentIndex] 
    } 
} // instance variable 

func handleSwipes(sender: UISwipeGestureRecognizer) 
{ 
    if (sender.direction == .Left) 
    { 
     if currentIndex < imagesArray.count - 1 
     { 
      currentIndex++ 
     } 
    } 
    else 
    { 
     if currentIndex > 0 
     { 
      currentIndex-- 
     } 
    } 
} 
関連する問題