添加到UITableViewCell的contentView的UITextField无法在Popover中正确显示(iPad,iOS 4.2)

时间:2011-01-06 02:13:28

标签: iphone ipad uitableview uitextfield popover

我正试图在iPad上的popover中显示一个选项表。我正在将UITextField添加到默认的UITableViewCell。该表配置为分段表。

无法正确绘制并且不显示。 如果选择该行,则UITextField变为可见。如果单击另一行,它将消失。

我玩子视图顺序无济于事。有用的是设置UITableViewCell.backgroundColor = [UIColor clearColor]。

如果我这样做,我认为需要在其他地方设置颜色,例如内容视图,UITableViewCell.contentView.backgroundColor = [UIColor whiteColor];

但是,它仍然无法正确显示。未选中或未选中时,它看起来很好。但是,如果我以编程方式设置附件复选标记,附件复选标记的一半背景会显示清晰,表背景颜色较深。

如果选择了行,它看起来没问题,但是如果选择了另一行,因为取消选择了UITextField的行,在几分之一秒内,您会看到一半的附件背景清晰(透明)

任何可能出错的想法或建议或如何解决这个问题? Apple文档明确指出,向ContentView添加视图是实现它的一种合适方式,但在这种情况下似乎不起作用。

这是我目前在tableView中的代码:cellForRowAtIndexPath:

UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(130, 10, 60, 26)];
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.text = @"foo";
[cell.contentView addSubview:textField];
[textField release];

cell.contentView.backgroundColor = [UIColor whiteColor];
cell.backgroundColor = [UIColor clearColor];

1 个答案:

答案 0 :(得分:0)

一般来说,设置UITableViewCell的backgroundColor的地方不是tableView:cellForRowAtIndexPath:。你必须在+ tableView中执行:willDisplayCell:forRowAtIndexPath:+。

您不需要更改contentView的backgroundColor。