【发布时间】:2017-02-18 06:00:14
【问题描述】:
如果 UIView 的特定实例确实是 UITableViewCell 的子视图,我正在制作一个 UIView 扩展,它返回一个可能的 UITableViewCell。
这个想法是稍后我可以将 UITableViewCell 引用传递给 UITableView 的 indexPath(for:) 方法来获取单元格的索引路径。
因此,如果我的表格视图单元格包含 UITextField,我能够在调用 UITextFieldDelegate 的 textFieldDidEndEditing(_ textField: UITextField) 方法时识别该文本字段来自哪个单元格。
到目前为止,这是我想出的:
extension UIView {
var tableViewCell: UITableViewCell? {
get {
var view = self
while let superview = view.superview {
if let tableViewCell = superview as? UITableViewCell {
return tableViewCell
}
view = superview
}
return nil
}
}
}
我有两个问题:
由于我是使用 Swift 编程的新手,请问是否有更好的(Swiftier?)方法来编写这个?
这是识别包含正在编辑的 UITextField 的 UITableViewCell 的索引路径的好方法吗?有没有更好的办法?
我实际上是 Swift 和 Stack Overflow 的新手,如果我做错了什么,非常抱歉(请多多原谅),我希望得到您的指导。谢谢。
【问题讨论】:
标签: ios swift uitableview uiview swift3