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

时间:2010-02-24 00:33:26

标签: iphone uitableview uitextfield uitextview

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

alt text http://i49.tinypic.com/2gsl4dh.png

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

    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 个答案:

答案 0 :(得分:3)

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