2016-01-20 51 views
2

我以编程方式生成UILabel,并为它们分别提供一个轻击手势识别器。从UILabel获取文本

我想访问每个标签中的文字时,他们被挖掘。

你可以在下面看到我的代码。我已经看过其他答案,并试图复制。但是,我仍然得到崩溃

“无法识别的选择发送到实例”

每当我试图挖掘标签。

func placeLabelCenterish(){ 

    let pushedLabel = UILabel(frame: CGRectMake(0,0,self.view.frame.size.width,25)) 
    pushedLabel.center = CGPointMake((self.view.frame.size.width)/2, 200) 
    pushedLabel.textAlignment = .Center 
    pushedLabel.font = UIFont.boldSystemFontOfSize(15) 
    pushedLabel.text = "HERE" 
    self.view.addSubview(pushedLabel) 
    let tap = UITapGestureRecognizer() 

    tap.addTarget(self, action: "nameTap") 
    pushedLabel.addGestureRecognizer(tap) 
    pushedLabel.userInteractionEnabled = true 
} 

func nameTap(sender : UIGestureRecognizer){ 
    print("tapped") 
    let thisLabel = sender.view as! UILabel 
    print(thisLabel.text) 
} 

当我删除发送者:从所述第二方法UIGestureRecognizer参数,它打印“螺纹”细。所以,我知道它正在接收水龙头。

func nameTap(){ 
    print("tapped") 
} 
+0

@dfri试过,并没有工作:/ –

回答

3

变化 “nameTap” 在action为 “nameTap:”(注意结肠);应该在点击时调用func nameTap(sender : UIGestureRecognizer)

+1

就是这样!非常感谢。该死的结肠....我会在几分钟内回答。 –

+1

@DanBeaulieu就像我在上面的评论中指出的那样,我完全打算回来并标记为完整。答案在我发布我的问题后很快发布(非常感谢),所以我被锁定了。 –