将 initWithCoder: implementation 转换为 Swift 时未触发手势识别器选择器
Posted
技术标签:
【中文标题】将 initWithCoder: implementation 转换为 Swift 时未触发手势识别器选择器【英文标题】:Gesture recognizer selector is not triggered when translating initWithCoder: implementation to Swift 【发布时间】:2017-06-23 15:40:05 【问题描述】:我在 Objective-C 中有以下代码需要转换为 Dwift。
- (instancetype)initWithCoder:(NSCoder *)aDecoder
self = [super initWithCoder:aDecoder];
if (self)
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)];
[self addGestureRecognizer:tap];
return self;
我尝试了以下方法,但选择器没有被触发:
required init?(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
let x:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapped))
这里有什么问题?
【问题讨论】:
【参考方案1】:您的 Objective-C 代码调用 addGestureRecognizer
。你的 Swift 代码没有。
required init?(coder aDecoder: NSCoder)
super.init(coder: aDecoder)
let x:UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(tapped))
addGestureRecognizer(x)
【讨论】:
是的,我注意到在我输入问题后。无论如何都会接受。谢谢以上是关于将 initWithCoder: implementation 转换为 Swift 时未触发手势识别器选择器的主要内容,如果未能解决你的问题,请参考以下文章
将 initWithCoder: implementation 转换为 Swift 时未触发手势识别器选择器
如何 initwithCoder 和 encodewithCoder 获取指针的值