如何在快捷方式中使多个标签可单击?



在我的代码我有一个tableView和几个标签。我希望当用户点击单元格,然后点击其中一个标签时,标签中的文本将与被点击的行中的文本相同。

Q1。我怎么能使所有的标签是可点击的,并连接到一个功能,将点上的具体标签,每次用户点击它?

Q2。我尝试用UITapGestureRecognizer对所有标签做出相同的手势。显然,这个手势只指最后一个标签(Lbl4在代码示例中)。这意味着在Lbl1的文本在我的函数改变只有通过点击Lbl4..为什么呢?我怎么改变它,让它指向所有的标签?

override func viewDidLoad() {
    super.viewDidLoad()
    let aSelector : Selector = #selector(ViewController.lblTapped)
    let tapGesture = UITapGestureRecognizer(target: self, action: aSelector)
    tapGesture.numberOfTapsRequired = 1
    Lbl1.addGestureRecognizer(tapGesture)
    Lbl2.addGestureRecognizer(tapGesture)
    Lbl3.addGestureRecognizer(tapGesture)
    Lbl4.addGestureRecognizer(tapGesture)
}
func lblTapped(){
    Lbl1.text = self.currentPlayerChooseInRow
}

谢谢提前…

首先,你需要理解UITableView对象。UITableView是一个单元格数组,明白吗?然后,你需要使用一些与UITableView相关的方法,比如numberOfRowsInSection(其中应用程序知道单元格的数量)和cellForRowAtIndexPath(其中应用程序知道单元格的数量)

关于你的问题,我建议你使用outlet来连接标签、按钮、对象到控制器(如果没有必要,尽量不要使用手势)

最后,对象单元格被编程为单元格。如果您有一个复杂的单元格,您将需要一个自定义单元格控制器。

相关内容

  • 没有找到相关文章

最新更新