XCode为不同的行编辑UITableView textFields
Posted
技术标签:
【中文标题】XCode为不同的行编辑UITableView textFields【英文标题】:XCode edit UITableView textFields for different rows 【发布时间】:2012-10-07 02:52:15 【问题描述】:我有一个程序,它显示一个只有 1 个单元格行的表格,其中包含要使用 2 个文本字段键入的客户信息。 (如下图)
用户可以点击添加符号为他们的兴趣添加一个新行。
当用户选择主类别时,子类别应自动填充信息。
我的问题是,当我说 2 行单元格时,我无法使用 mainCategory 中的选择自动填充第二个子类别,因为我不知道如何识别它们。
我已经在这个视图中实现了 UITableView/UIPickerView 委托。
【问题讨论】:
因为你将从 textField 标签中获取 indexPath,使用它获取整个单元格,你可以从单元格中做任何你想做的事吗? 【参考方案1】:使用文本字段方便的tag
属性。您可以在 Xcode 的 Interface Builder 中设置这些以区分您的两个字段。
现在您可以像这样在textField:didBeginEditing
中识别特定行及其索引路径:
#define mainTag 2
#define subTag 3
UITableViewCell *cell = (UITableViewCell*)textField.superview.superview;
NSIndexPath *indexPath = [_tableView indexPathForCell:cell];
UITextField *mainCategory = (UITextField*)[cell viewWithTag:mainTag];
UITextField *subCategory = (UITextField*)[cell viewWithTag:subTag];
诀窍在于,文本字段是名为 contentView
的视图的子视图,它是每个 UITableViewCell
的一部分,而 UITableViewCell
又是单元格本身的子视图。
【讨论】:
重要提示:[_tableView indexPathForCell:cell]
如果单元格超出可见区域,则返回 nil。
如果单元格中的文本字段正在被编辑,这不太可能。可以将表格视图设置为非滚动以防止这种情况发生。以上是关于XCode为不同的行编辑UITableView textFields的主要内容,如果未能解决你的问题,请参考以下文章
用于在 Swift 中删除 UITableView 中的行的编辑按钮不起作用
自动滚动 UITableView 以显示正在编辑的行**下方**行