UITableViewCell 中的 UITextField 与 UIPickerView?

Posted

技术标签:

【中文标题】UITableViewCell 中的 UITextField 与 UIPickerView?【英文标题】:UITextField vs. UIPickerView in UITableViewCell? 【发布时间】:2011-03-01 18:42:33 【问题描述】:

对于目录订购 iPad 应用,处理产品数量的最合适方法是什么。我目前正在努力尝试在UITableViewCells 中使用UITextFields 设置此值。该应用程序根据产品的第一个字母按字母顺序显示产品。我在UINavigationBar 中使用SegmentedControl 设置了它,它根据所点击的字母刷新单元格,仅显示该字母的产品,这在所有方面都不相同。

我发布了一个question yesterday to set up UITextFields,使用UITextFieldDelegate 是我更倾向于使用的答案。我仍然面临该选项的问题是,当我为textField 输入一个数字时,它出于某种原因将其显示在其他单元格上。当我向上和向下滚动列表时,它会不断用该值填充随机单元格,并且在某些情况下,会从实际应该具有它的单元格中删除该值。

今天,我越来越绝望,并试图找到处理这些数量的选项。可能使用UIPickerView 或其他类型。有没有人研究过订购目录之类的东西?非常感谢任何有关如何解决此问题的共享信息。

【问题讨论】:

【参考方案1】:

我的第一个倾向是您应该实现-tableView:willDisplayCell:forRowAtIndexPath: 并使用索引路径来确定与该项目关联的当前数量。不确定您的数据是如何设置的,但我会将这些信息保存在关联的数组中。

这是一个例子

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

    NSInteger *quantity = [quantities objectAtIndex:indexPath.row];
    cell.textField.text = [NSString stringWithFormat:@"%i", quantity];

【讨论】:

【参考方案2】:

我使用可变字典使用 UITextFieldDelegate 的 shouldReturn 方法存储值,让它完美地工作。从那里,我会简单地让它显示从字典到 productCode 的匹配值。

【讨论】:

以上是关于UITableViewCell 中的 UITextField 与 UIPickerView?的主要内容,如果未能解决你的问题,请参考以下文章

根据内容大小属性设置 UIText 视图的宽度

从 UIText 字段的用户输入更改 UIView 框架的高度和宽度

无法更改 UIText 视图的字体(使用 Web 服务时)

如何从 UITextfields UIMenuController 中删除不需要的 UIMenuItems?

UITableViewCell 中的 UIDatePicker 更新 UITableViewCell 文本标签

更改 UITableViewCell 中的对象也更改了重用 UITableViewCell 的对象