2016-08-23 48 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一个图像本身)在viewdidload.Just通过左,右轻扫不同的图像只是通过不同的图像在左右滑动。如果(sender.direction ==。左){ 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-- 
     } 
    } 
}