2011-01-06 3 views
0

Я пытаюсь отобразить таблицу вариантов в popover на iPad. Я добавляю UITextField к UITableViewCell по умолчанию. Таблица настроена как разделенная таблица.UITextField, добавленный в contentView UITableViewCell, не отображается должным образом в 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

+0

Какой дополнительный код может быть полезен для просмотра? – David

ответ

0

В общем месте, чтобы установить BackgroundColor UITableViewCell является не Tableview: cellForRowAtIndexPath :. Вы должны сделать это в + tableView: willDisplayCell: forRowAtIndexPath: +.

Вам не нужно менять backgroundColor contentView.

+0

Не объясняет, почему это не работает. Он не отображается, если не изменен backgroundColor contentView. – David

 Смежные вопросы

  • Нет связанных вопросов^_^