2011-01-06 31 views
0

我試圖在iPad上彈出顯示一個選項表。我將UITextField添加到默認的UITableViewCell。該表配置爲分段表。UITextField添加到UITableViewCell contentView無法在Popover(iPad,iOS 4.2)中正確顯示

它沒有正確繪製並且不顯示。 如果選中該行,則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]; 
+0

也許會顯示一個或多個popover代碼。 – WrightsCS 2011-01-06 02:24:10

+0

有什麼額外的代碼可以用來查看? – David 2011-01-07 05:18:51

回答

0

一般設置一個UITableViewCell的的backgroundColor的地方沒有的tableView:的cellForRowAtIndexPath :.您必須在+ tableView:willDisplayCell:forRowAtIndexPath:+中執行此操作。

您不應該需要更改contentView的backgroundColor。

+0

沒有解釋爲什麼它不起作用。除非contentView的backgroundColor被改變,否則它不會顯示。 – David 2011-01-07 00:51:09

相關問題