Ios 获取标签的值

Ios 获取标签的值,ios,swift,uilabel,Ios,Swift,Uilabel,所以我目前正在创建动态标签,我需要在点击时获取它们的值。我正在使用for循环创建编号为1到10的标签。然后,我将它们与UITapGestureRecognizer一起添加到视图中,以便在点击时进行检测。我需要做的是获取点击标签的文本。因此,如果我单击带有1文本的标签,我希望返回1。下面是我创建标签和添加手势识别器的步骤 for number in numbers.characters { let touch = UITapGestureRecognizer(target:se

所以我目前正在创建动态标签,我需要在点击时获取它们的值。我正在使用for循环创建编号为1到10的标签。然后,我将它们与
UITapGestureRecognizer
一起添加到视图中,以便在点击时进行检测。我需要做的是获取点击标签的文本。因此,如果我单击带有
1
文本的标签,我希望返回
1
。下面是我创建标签和添加手势识别器的步骤

   for number in numbers.characters {
       let touch = UITapGestureRecognizer(target:self, action: "numberClicked")
       touch.numberOfTapsRequired = 1

       let label = UILabel(frame: CGRectMake(CGFloat(x), CGFloat(y1), CGFloat(width), CGFloat(height)))
       label.font = label.font.fontWithSize(38)
       label.text = String(number)
       label.userInteractionEnabled = true
       label.addGestureRecognizer(touch)
       self.view.addSubview(label)
   }

下面是一个在动作函数中获取标签文本的示例。关键的更改是在点击操作的名称中添加一个冒号,表示它采用了发送方参数。然后,您可以访问发件人的
视图
属性,以获取
ui标签
本身

for number in numbers.characters {
    // add a colon after "numberClicked" to indicate it takes an argument
    let touch = UITapGestureRecognizer(target:self, action: "numberClicked:")
    touch.numberOfTapsRequired = 1

    let label = UILabel(frame: CGRectMake(CGFloat(x), CGFloat(y1), CGFloat(width), CGFloat(height)))
    label.font = label.font.fontWithSize(38)
    label.text = String(number)
    label.userInteractionEnabled = true
    label.addGestureRecognizer(touch)
    self.view.addSubview(label)
 }


func numberClicked(gesture: UIGestureRecognizer) {
    if gesture.state == .Ended {
        if let theLabel = (gesture.view as? UILabel)?.text {
            print(theLabel) // print the "1"
        }
    }
}

下面是一个在动作函数中获取标签文本的示例。关键的更改是在点击操作的名称中添加一个冒号,表示它采用了发送方参数。然后,您可以访问发件人的
视图
属性,以获取
ui标签
本身

for number in numbers.characters {
    // add a colon after "numberClicked" to indicate it takes an argument
    let touch = UITapGestureRecognizer(target:self, action: "numberClicked:")
    touch.numberOfTapsRequired = 1

    let label = UILabel(frame: CGRectMake(CGFloat(x), CGFloat(y1), CGFloat(width), CGFloat(height)))
    label.font = label.font.fontWithSize(38)
    label.text = String(number)
    label.userInteractionEnabled = true
    label.addGestureRecognizer(touch)
    self.view.addSubview(label)
 }


func numberClicked(gesture: UIGestureRecognizer) {
    if gesture.state == .Ended {
        if let theLabel = (gesture.view as? UILabel)?.text {
            print(theLabel) // print the "1"
        }
    }
}

func numberClicked(sender:UILabel){如果让title=sender.text{…}
它似乎不起作用。似乎
theView=sender as?UILabel
不是真的:(@LeoDabus当尝试按您的方式执行时,我收到一个错误,说明
text
不可用deprecated@LeoDabus添加了显式键入的版本。谢谢。@LeoDabus是的,我想是的。我认为这是一个
UIControl
。我编辑了我的答案。
func numberClicked(发件人:UILabel){如果让title=sender.text{…}}
它似乎不起作用。看来
theView=sender as?UILabel
不是真的:(@LeoDabus在尝试按您的方式执行时,我收到一个错误消息,表示
text
无法按原样使用deprecated@LeoDabus添加了显式键入的版本。谢谢。@LeoDabus是的,我想是的。我认为这是一个
UIControl
。我编辑了我的答案。我不确定为什么这个问题被认为是基于意见的。它问了一个问题关于特定API的基本“如何”问题。答案主要不是基于观点,而是基于
UILabel
类的实际工作方式。我不确定为什么这个问题被认为是基于观点的。它问一个基本的“如何”关于特定API的问题。答案主要不是基于观点,而是基于
UILabel
类的实际工作方式。