【发布时间】:2015-04-02 02:45:11
【问题描述】:
我这几天一直在反对这个,尝试了许多不同的方法。我有一个 UITableView,其中包含两个 UILabel 的自定义单元格。选择单元格时,会显示一个 UIPicker,并设置一个变量来引用哪个单元格被点击。
在 UIPicker 中进行选择后,我需要获取该值并使用它来替换其中一个单元格标签的现有 .text。我尝试过使用 .viewWithTag 几种不同的方式(首先标记标签本身,然后标记整个单元格),但没有任何效果。
我的选择器的 didSelect 是:
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
println("pickerView did select row \(row)")
if(self.getStatus() == "newFirst"){
switch (editingField){
case 0:
var l:NewOrderCell! = tableView.viewWithTag(editingField) as? NewOrderCell
//the label in the custom cell is called 'Text'
l.Text.text = pickerData[row]
println("should be changing \(l.Text.text) into \(pickerData[row])")
default:
var l:NewOrderCell! = tableView.viewWithTag(editingField) as? NewOrderCell
l.Text.text = pickerData[row]
}
}
picker.hidden=true
}
我的表格 cellForRowAtIndexPath 是:
var cell:NewOrderCell = tableView.dequeueReusableCellWithIdentifier("NewOrderCell") as NewOrderCell
//label
cell.Label.text = self.newOrder[indexPath.row]
//text
cell.Text.text = "Please Select"
cell.tag = indexPath.row
return cell
我知道我的目标,但无法掌握从其他方法引用表格中单元格的正确方法。感谢您的帮助
【问题讨论】:
-
您尝试过使用委托吗?您可以对 UIPicker 进行子类化,在该类中定义协议并在表格视图中实现这些协议功能。将子类 UIPIcker 的委托设置为 tableview 并在 table view 类中实现一个函数,该函数将文本和单元格索引作为输入并更新相同。如果您需要代码,请回复评论..
标签: ios uitableview swift uipickerview