Swift 3. 尝试从 viewController 更新原型单元 class 中声明的一些 IBOutlet
Swift 3. Trying to update from viewController some IBOutlets declared in prototype cell class
我在 tableView 中有单元格,其中有 2 个标签显示文本。
单元格在 UITableViewCell
类型的 detailCell class 中进行管理,它为两个标签引用 IBOutlets。这使我能够管理我的原型单元并显示核心数据条目。
我在每个标签的顶部添加了 UITextField
(边框样式不可见),我想在用户点击文本字段并开始编辑时隐藏标签。
问题是我不知道如何在不引用 viewController 中的标签的情况下管理我的 viewController 中的标签(在原型 class 中引用)。当然这会引发错误:"Outlets cannot be connected to repeating content".
另一种方法是根据我在 viewController 中使用的 var isEditing: Bool
,通过从单元格 class 管理它来添加 hide/display 标签,但是我无法在单元格 class.
中使用它
有什么想法吗?
要实现这一点,您必须执行以下操作:
-> 首先,您必须将所有文本字段委托给自己
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let aCell : myCustomCell = tableView.dequeueReusableCell(withIdentifier: "aCell") as! myCustomCell
aCell.txtView1.delegate = self
return aCell
}
-> 其次,当用户单击文本字段时,您必须获得特定的单元格
func textFieldDidBeginEditing(_ textField: UITextField) {
//Get parent cell by traveling to the superview as your cell (Depends on your view hierarchy in your cell)
let aCell : myCustomCell = textField.superview?.superview as! myCustomCell
//Hide below label
aCell.lblData.hidden = true
}
--> 第三,当文本字段结束编辑被调用时,你必须隐藏文本字段并再次显示标签
func textFieldDidEndEditing(_ textField: UITextField) {
let aCell : myCustomCell = textField.superview?.superview as! myCustomCell
//Hide below label
aCell.lblData.text = textField.text
aCell.lblData.hidden = false
}
我在 tableView 中有单元格,其中有 2 个标签显示文本。
单元格在 UITableViewCell
类型的 detailCell class 中进行管理,它为两个标签引用 IBOutlets。这使我能够管理我的原型单元并显示核心数据条目。
我在每个标签的顶部添加了 UITextField
(边框样式不可见),我想在用户点击文本字段并开始编辑时隐藏标签。
问题是我不知道如何在不引用 viewController 中的标签的情况下管理我的 viewController 中的标签(在原型 class 中引用)。当然这会引发错误:"Outlets cannot be connected to repeating content".
另一种方法是根据我在 viewController 中使用的 var isEditing: Bool
,通过从单元格 class 管理它来添加 hide/display 标签,但是我无法在单元格 class.
有什么想法吗?
要实现这一点,您必须执行以下操作:
-> 首先,您必须将所有文本字段委托给自己
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let aCell : myCustomCell = tableView.dequeueReusableCell(withIdentifier: "aCell") as! myCustomCell
aCell.txtView1.delegate = self
return aCell
}
-> 其次,当用户单击文本字段时,您必须获得特定的单元格
func textFieldDidBeginEditing(_ textField: UITextField) {
//Get parent cell by traveling to the superview as your cell (Depends on your view hierarchy in your cell)
let aCell : myCustomCell = textField.superview?.superview as! myCustomCell
//Hide below label
aCell.lblData.hidden = true
}
--> 第三,当文本字段结束编辑被调用时,你必须隐藏文本字段并再次显示标签
func textFieldDidEndEditing(_ textField: UITextField) {
let aCell : myCustomCell = textField.superview?.superview as! myCustomCell
//Hide below label
aCell.lblData.text = textField.text
aCell.lblData.hidden = false
}