Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PangTesture在UItableviewcell中,表格滚动在swift中不工作_Uitableview_Swipe_Uipangesturerecognizer_Tinder - Fatal编程技术网

PangTesture在UItableviewcell中,表格滚动在swift中不工作

PangTesture在UItableviewcell中,表格滚动在swift中不工作,uitableview,swipe,uipangesturerecognizer,tinder,Uitableview,Swipe,Uipangesturerecognizer,Tinder,我想在UItableviewCell内左右滑动UIview,我已经使用UIPanGestureRecognizer实现了这一点,下面是附带的源代码。但是,当我尝试滚动UItableview时,我的Uiview可上下移动,无法滚动到UItableviewcell,即Superview。有人能告诉我如何管理吗?提前谢谢 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

我想在UItableviewCell内左右滑动UIview,我已经使用UIPanGestureRecognizer实现了这一点,下面是附带的源代码。但是,当我尝试滚动UItableview时,我的Uiview可上下移动,无法滚动到UItableviewcell,即Superview。有人能告诉我如何管理吗?提前谢谢

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return 10

}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "CardSwipeTVCell") as! CardSwipeTVCell


    let tapGesture : UIPanGestureRecognizer!
    tapGesture = UIPanGestureRecognizer(target: self, action: #selector(ViewController.tapEdit(_:)))
    cell.cardView.addGestureRecognizer(tapGesture!)
    cell.cardView.tag = indexPath.row
    tapGesture!.delegate = self


    cell.selectionStyle = .none
    return cell


}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {


}

func tapEdit(_ recognizer: UIPanGestureRecognizer)
{
    print(recognizer.view?.tag as Any)

    let sender = recognizer.view?.tag as Any

    let indexPath = IndexPath(row: sender as! Int, section: 0)
    let cell = self.cardTableView.cellForRow(at: indexPath) as? CardSwipeTVCell


    cell?.cardView.backgroundColor = UIColor.black

    let card = recognizer.view!
    let point = recognizer.translation(in: view)
    card.center = CGPoint(x: (cell?.center.x)! + point.x, y: (cell?.center.y)! + point.y)

    if recognizer.state == UIGestureRecognizerState.ended
    {
        UIView.animate(withDuration: 0.3, animations: {

            card.center = (cell?.center)!

        })

    }

}
另一个问题是,当我点击第二个单元格时,我的视图消失了?非常感谢你的帮助

override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
    if let panGestureRecognizer = gestureRecognizer as? UIPanGestureRecognizer {
        //let translation = panGestureRecognizer.translation(in: superview!)
        let translation = panGestureRecognizer.translationInView(superview)
        if fabs(translation.x) > fabs(translation.y) {
            return true
        }
        return false
    }
    return false
}
在类中添加上述委托方法。当tableview垂直滚动时,它将停止pangesture

在类中添加上述委托方法。当tableview垂直滚动时,它将停止pangesture