在我的代码我有一个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来连接标签、按钮、对象到控制器(如果没有必要,尽量不要使用手势)
最后,对象单元格被编程为单元格。如果您有一个复杂的单元格,您将需要一个自定义单元格控制器。