Я искал в Google, но, к сожалению, не смог найти решение для моего запроса, поэтому, наконец, я решил опубликовать его здесь.У меня есть UIViewController, который содержит ScrollView, который имеет UIView и tableView.На этом UIView я применил к нему жесты: проведите вправо, влево, вверх и вниз, а также нажмите жест.Жесты вправо, влево и касание работают нормально, но жесты вверх и вниз не работают (не распознаются).Это связано с тем, что они содержатся в scrollView, и когда делаются жесты пролистывания вверх и вниз, просмотр прокрутки идет вверх и вниз и, следовательно, препятствует жестам пролистывания, применяемым к UIView.Скриншоты сценария были прикреплены.Любая помощь будет оценена.
Теперь Мой вопрос: при нажатии (прокрутка выполнена) на tableView ячейки должны прокручиваться, и в это время весь вид не должен прокручиваться, а когда жестывыполняются на UIView, содержащем UIImage (жест смахивания вверх и вниз), весь вид не должен прокручиваться снова.Надеюсь, мне удалось передать мой запрос.
// Вот весь код класса.
import UIKit
class TableViewVC: UIViewController,UIGestureRecognizerDelegate{
@IBOutlet weak var headerView: UIView!
@IBOutlet weak var scrollView: UIScrollView!
var names = ["Anurag","Tushar","Deepamkar","Karnail","Anurag","Tushar","Deepamkar","Karnail","Anurag","Tushar","Deepamkar","Karnail","Anurag","Tushar","Deepamkar","Karnail","Anurag","Tushar","Deepamkar","Karnail"]
override func viewDidLoad() {
super.viewDidLoad()
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeRight.direction = UISwipeGestureRecognizerDirection.right
self.headerView.addGestureRecognizer(swipeRight)
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeLeft.direction = UISwipeGestureRecognizerDirection.left
self.headerView.addGestureRecognizer(swipeLeft)
let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeDown.direction = UISwipeGestureRecognizerDirection.down
self.headerView.addGestureRecognizer(swipeDown)
let swipeUp = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeDown.direction = UISwipeGestureRecognizerDirection.up
self.headerView.addGestureRecognizer(swipeUp)
let tap = UITapGestureRecognizer(target: self, action: #selector(self.respondToTapGesture))
self.headerView.addGestureRecognizer(tap)
}
@objc func respondToSwipeGesture(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.right:
print("Swiped right")
case UISwipeGestureRecognizerDirection.down:
print("Swiped down")
case UISwipeGestureRecognizerDirection.left:
print("Swiped left")
case UISwipeGestureRecognizerDirection.up:
print("Swiped up")
default:
break
}
}
}
@objc func respondToTapGesture(gesture: UIGestureRecognizer) {
if gesture is UITapGestureRecognizer {
print("Tapped")
}
}
}
extension TableViewVC : UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return names.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell1", for: indexPath) as! TableViewCell1
cell.textLabel?.text = names[indexPath.row]
return cell
}
}