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 编辑后选择的行

自动滚动 UITableView 以显示正在编辑的行**下方**行

xcode将UITableView转换为UICollectionView(无有效单元格)

如何从 UITableView 中删除选定的行? [复制]

删除 UITableView 中 UITableViewCells 之间的行