在UITableViewCell自定义类的UIView属性上添加UISwipegestureRecognitor

在UITableViewCell自定义类的UIView属性上添加UISwipegestureRecognitor,uitableview,swift,ios8,uiswipegesturerecognizer,Uitableview,Swift,Ios8,Uiswipegesturerecognizer,我有一个自定义UITableViewCell类,其init方法如下所示: init(style: UITableViewCellStyle, reuseIdentifier: String!) { super.init(style: style, reuseIdentifier: reuseIdentifier) let swipeLeft: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target:

我有一个自定义UITableViewCell类,其init方法如下所示:

init(style: UITableViewCellStyle, reuseIdentifier: String!) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)

        let swipeLeft: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipedLeft")
        let swipeRight: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipedRight")

        swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
        swipeRight.direction = UISwipeGestureRecognizerDirection.Right

        self.topLayerView?.addGestureRecognizer(swipeLeft)
        self.topLayerView?.addGestureRecognizer(swipeRight)
    }
self.topLayerView
是一个IBOutlet。问题是当我添加手势识别器时,
self.topLayerView
nil

如果我在
init
方法中编写类似的内容:

if self.topLayerView? {
            println("NOT empty")
        } else {
            println("empty")
        }
它总是让我感到“空虚”。 所以,我的问题是:把这段代码放在哪里比较合适


任何帮助都将不胜感激

Init在视图的生命周期中还太早,无法期望设置任何iboutlet。我建议将代码移动到单元格的awakeFromNib()方法,在接口文件完全加载后调用该方法。您可以在中找到有关此方法和其他方法的更多信息


明亮的非常感谢!:)在本例中,执行swipeLeft/swipeRight时运行的代码块/操作在哪里?该代码是在单元格VC中还是在表VC中?
override func awakeFromNib() {
    super.awakeFromNib()

    let swipeLeft: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipedLeft")
    let swipeRight: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipedRight")

    swipeLeft.direction = UISwipeGestureRecognizerDirection.Left
    swipeRight.direction = UISwipeGestureRecognizerDirection.Right

    self.topLayerView?.addGestureRecognizer(swipeLeft)
    self.topLayerView?.addGestureRecognizer(swipeRight)
}