繁体   English   中英

UITableViewCell 中的平移手势可防止在 UITableView 中滚动。 如何解决?

[英]Pan gesture in UITableViewCell prevents scrolling in UITableView. How to fix it?

我有一个带有自定义 TableViewCell 的 UITableView。 我使用平移手势来识别位置,同时将手指向左和向右移动。 在手指 position 的基础上,我更改了 TableViewCell 中标签中的一些值。 这真的很棒。 但是突然我不能上下滚动TableView。 我已经阅读了原因。 Swift 不能同时使用两个手势识别器。 我发现很多人的例子几乎相同。 我尝试了很多,但我无法解决我的问题。 我使用 Swift 5。您能否更准确地描述一下如何解决我的问题? 非常感谢

import UIKit

class TVCLebensmittel: UITableViewCell {

    override func awakeFromNib() {
        super.awakeFromNib()
        
        let gestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan))
        self.addGestureRecognizer(gestureRecognizer)
        
    }

    @IBAction func handlePan(_ gestureRecognizer: UIPanGestureRecognizer) {
        if gestureRecognizer.state == .began {

            let translation = gestureRecognizer.translation(in: self)
            // Put my finger on the screen

        } else if gestureRecognizer.state == .changed {
            
            let translation = gestureRecognizer.translation(in: self)
            // While moving my finger ...

        } else if gestureRecognizer.state == .ended {

            let translation = gestureRecognizer.translation(in: self)
            // Lift finger

        }
    }   
    ...
}

解决方案是将平移手势插入到 tableview 而不是 tableviewcell。 所以我可以听到左右平移以及tableview的上下移动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM