iPhone SDK - UITableCell 的 UITextField 子视图给出了绘图问题?

Posted

技术标签:

【中文标题】iPhone SDK - UITableCell 的 UITextField 子视图给出了绘图问题?【英文标题】:iPhone SDK - UITextField subview of UITableCell gives drawing issues? 【发布时间】:2010-02-24 00:33:25 【问题描述】:

我将一些 UITextFields、UITextViews 和 UIImageViews 作为子视图添加到 UITableCell。当我在 TextFields 或 TextViews 中输入一些文本并向上或向下滚动表格时,我遇到了一些绘图问题。每隔一个字段的文本就会与其他字段重叠,如下所示:

我正在创建这样的表单元素:

    self.formFields = [[NSArray alloc] initWithObjects:
[[UITextField alloc] initWithFrame:CGRectMake(18.0, 10.0, 284.0, 22.0)],
[[UITextView alloc] initWithFrame:CGRectMake(18.0, 8.0, 284.0, 140.0)],
[[UITextField alloc] initWithFrame:CGRectMake(18.0, 10.0, 284.0, 22.0)],
[[UITextField alloc] initWithFrame:CGRectMake(18.0, 10.0, 284.0, 22.0)],
[[UIImageView alloc] initWithFrame:CGRectMake(18.0, 18.0, 284.0, 284.0)],nil];

并添加子视图:

- (UITableViewCell *)tableView:(UITableView *)tableView
                         cellForRowAtIndexPath:(NSIndexPath *)indexPath 

      ...
     [cell addSubview:[self.formFields objectAtIndex:indexPath.section]];
     return cell;

有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

您是否在任何地方删除子视图?如果没有,它们只会不断地添加到单元格中并彼此重叠出现,因为单元格正在被重复使用。在添加新子视图之前删除所有旧子视图,或者(这对我来说更合乎逻辑)为每个部分创建不同的单元格标识符和单元格,然后在创建每个单元格时创建并添加适当的子视图。

【讨论】:

以上是关于iPhone SDK - UITableCell 的 UITextField 子视图给出了绘图问题?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 开发:滑动 UITableCell

如何在 iPhone 应用程序的 UITableCell 中的背景中加载图像

UITableCell 相关

UITableCell 高度未正确调整

在自定义 UITableCell 中从 UITextField 调用 textFieldShouldReturn 时遇到问题

实现可变大小的多行 UITableCell 的最佳方法是啥?