사용자가 tableView 맨 아래로 스 와이프하면 현재 viewcontroller를 닫으려고합니다. tableview가 전체 화면을 차지하므로 제스처와 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? 내가 뭔가를 놓친 경우에 대비하여 설명을 고맙게 생각합니다. –