【发布时间】:2018-04-27 18:09:29
【问题描述】:
我有一个位于 tableView 标题内的 segmentedControl。当它拿起一个 panGesture 时,我希望它滚动封闭的 tableView,就好像我在桌子上的其他地方向上或向下滑动一样。
我添加了一个 panGesture:
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(self.handlePanGesture(_:)))
segmentedControl.addGestureRecognizer(panGestureRecognizer)
唯一接近做我想做的事是以下。但它的行为与我正常滑动 tableView 的行为不同。 panGesture 完成后,tableView 不会移回原始位置。没有反弹。
@objc func handlePanGesture(_ panGesture: UIPanGestureRecognizer) {
let translation = panGesture.translation(in: segmentedVotingControl)
panGesture.setTranslation(CGPoint.zero, in: segmentedVotingControl)
tableView.contentOffset = CGPoint(x: tableView.contentOffset.x, y: tableView.contentOffset.y - translation.y)
}
我也尝试过类似的方法,但它只是锁住了桌子。它不滚动:
segmentedVotingControl.addGestureRecognizer(tableView.panGestureRecognizer)
segmentedControl 上的常规“点击”手势是这样处理的:
@objc func segmentedVotingControlAction(sender: UISegmentedControl) {
// actions to perform on tap
}
segmentedControl.addTarget(self, action: #selector(segmentedVotingControlAction(sender:)), for: .valueChanged)
有什么想法吗?我在正确的轨道上吗?看来我应该能够以某种方式将 panGesture 传递给 tableView。
【问题讨论】:
标签: swift uitableview uigesturerecognizer uipangesturerecognizer