在UITableViewCell自定义类的UIView属性上添加UISwipegestureRecognitor
我有一个自定义UITableViewCell类,其init方法如下所示:在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:
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)
}