手势识别器不工作
Gesture Recognizer Not Working
我已将左右轻扫手势识别器添加到图像视图,但只有右轻扫有效。
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft")
swipeLeftRecognizer.direction = .Left
let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight")
swipeLeftRecognizer.direction = .Right
if itemImages.count > 1 {
imageView.addGestureRecognizer(swipeLeftRecognizer)
imageView.addGestureRecognizer(swipeRightRecognizer)
for recognizer in imageView.gestureRecognizers! {
recognizer.delegate = self
}
func swipeRight() {
if currentIndex == 0 {
itemImages.last!.getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex = itemImages.count - 1
} else {
itemImages[currentIndex - 1].getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex--
}
}
func swipeLeft() {
let index = itemImages.count - 1
if currentIndex == index {
itemImages[0].getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex = 0
} else {
itemImages[currentIndex + 1].getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex++
}
}
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft")
swipeLeftRecognizer.direction = .Left
let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight")
swipeRightRecognizer.direction = .Right
/// 你两次使用 'swipeLeftRecognizer.direction'。
现在你的 leftSwite 以正确的方向工作
或者您可以将情节提要中的 swipeGesture 连接到您的 "swipeLeft" 和 "swipeRight" 方法并且在此之前不要编写任何代码
我已将左右轻扫手势识别器添加到图像视图,但只有右轻扫有效。
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft")
swipeLeftRecognizer.direction = .Left
let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight")
swipeLeftRecognizer.direction = .Right
if itemImages.count > 1 {
imageView.addGestureRecognizer(swipeLeftRecognizer)
imageView.addGestureRecognizer(swipeRightRecognizer)
for recognizer in imageView.gestureRecognizers! {
recognizer.delegate = self
}
func swipeRight() {
if currentIndex == 0 {
itemImages.last!.getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex = itemImages.count - 1
} else {
itemImages[currentIndex - 1].getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex--
}
}
func swipeLeft() {
let index = itemImages.count - 1
if currentIndex == index {
itemImages[0].getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex = 0
} else {
itemImages[currentIndex + 1].getDataInBackgroundWithBlock( {
(data, error) -> Void in
self.imageView.image = UIImage(data: data!)
})
let transition = CATransition()
transition.duration = 1.0
transition.subtype = kCATransitionFromLeft
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = kCATransitionReveal
imageView.layer.addAnimation(transition, forKey: nil)
currentIndex++
}
}
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft")
swipeLeftRecognizer.direction = .Left
let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight")
swipeRightRecognizer.direction = .Right
/// 你两次使用 'swipeLeftRecognizer.direction'。 现在你的 leftSwite 以正确的方向工作
或者您可以将情节提要中的 swipeGesture 连接到您的 "swipeLeft" 和 "swipeRight" 方法并且在此之前不要编写任何代码