我将一些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;
}
有什么方法可以解决这个问题吗?
答案 0 :(得分:3)
您是否在任何地方删除了子视图?如果没有,它们只是不断添加到单元格中并且显示在彼此之上,因为单元格正在被重用。在添加新子视图之前删除任何旧子视图或(这对我来说更合乎逻辑)为每个部分创建不同的单元格标识符和单元格,然后在创建每个单元格时创建并添加适当的子视图。