2016-01-20 50 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就像我在上面的評論中指出的那樣,我完全打算回來並標記爲完整。答案在我發佈我的問題後很快發佈(非常感謝),所以我被鎖定了。 –