ユーザーがテーブルビューの最上部でスワイプしたときに現在のビューコントローラを終了しようとしています。テーブルビューは画面全体を占めているので、私の身振りとtableView
のジェスチャーは競合します。パンジェスチャ認識機能は、スワイプダウンするときにのみスクロールし、テーブルビューの最上部で反応します。
ユーザーがテーブルビュー(tableView.contentOffset.y == 0.0
)をスクロールせず、スワイプの方向が下向きの場合にのみUIPanGestureRecognizer
が応答すると考えました。しかし、私はこれを実装することに成功していません。私は同様の質問で周りを見回しているが、答えのどれも私のために働いていない
var tableGesture: UIPanGestureRecognizer?
var oPosition: CGPoint?
var currentPosition: CGPoint?
@IBOutlet weak var table: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
table.delegate = self
table.dataSource = self
tableGesture = UIPanGestureRecognizer(target: self, action: #selector(tableGesture(_:)))
table.addGestureRecognizer(tableGesture!)
}
override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
let translation = tableGesture?.translation(in: table)
return translation!.y > 0 && table.contentOffset.y == 0.0
}
:
は、これは私のコードです。
なぜdownvoteですか?私は何かを逃した場合の説明を感謝します。 –