2010-01-24 3 views
2

У меня есть tableView. Все, что он настроил и работает. У меня был cell.accessoryType, работающий нормально, но не однажды я получил cell.editingAccessoryType для работы. Он работал с этим устаревшим методом, но с новым ... не повезло. Вот мой код, по крайней мере в первой секции:UITableViewCell cell.editingAccessoryType не работает

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
UITableViewCell *cell = nil; 

переключатель (indexPath.section) {
случай RFE_SECTION: переключатель (indexPath.row) { случай 0: { статический NSString * RFECellIdentifier = @ "RFECellIdentifier";

cell = [tableView dequeueReusableCellWithIdentifier:RFECellIdentifier]; 

if (cell == nil) 
{ 
// Create a cell to display "Add Visit". 
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:RFECellIdentifier] autorelease]; 
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap; 
cell.textLabel.numberOfLines = 0; 
cell.textLabel.font = [UIFont fontWithName:@"American Typewriter" size:16.0f]; 
} 
if (visit.rfe.length == 0) 
{ 
cell.textLabel.text = @"Add Reason for Encounter"; 
} 
if (visit.rfe.length != 0) 
{ 
cell.textLabel.text = visit.rfe; 
} 

} break; } break;

Следующий раздел, и т.д., и т.д., и т.д.

Всякий раз, когда я положил editingAccessoryType в, я иду редактировать Tableview и не показывается. Есть идеи? Я пропустил какой-то метод делегата или что-то еще?

У меня также есть - (void) setEditing: (BOOL) редактирование анимированный: (BOOL) анимированный способ установлен. Будет ли это иметь значение? Я сейчас потерялся. Спасибо заранее.

ответ

2

Учитывая, что вы повторно клетки, убедитесь, что вы установили как accessoryType и editingAccessoryType для каждой ячейки и закомментируйте -tableView: accessoryTypeForRowWithIndexPath :. Если ничего не происходит, закомментируйте весь код установки ячейки в таблице: cellForRowAtIndexPath :, возвращая пустую ячейку с аксессуаром.

+0

I сделал все это. Сокращение моего метода до простейших условий. - (UITableViewCell *) Tableview: (UITableView *) Tableview cellForRowAtIndexPath: (NSIndexPath *) indexPath { \t статический NSString * RFECellIdentifier = @ "RFECellIdentifier"; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier: RFECellIdentifier]; \t \t если (ячейки == ноль) \t { \t \t // Создать ячейку для отображения "Добавить Визит". \t \t cell = [[[UITableViewCell alloc] init] autorelease]; \t} \t cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; \t cell.editAccessoryType = UITableViewCellAccessoryNone; \t обратная ячейка; } Еще не кости – monotreme

+0

Кроме того, я не уверен, не используя UITableViewController @interface VisitDetailViewController: UIViewController Я пропускаю здесь что-нибудь? – monotreme

+0

настройка cell.editingAccessoryType to UITableViewCellAccessoryNone * скрывает * аксессуар при редактировании, что объясняет, почему вы не видите при входе в состояние редактирования. Это ожидаемое поведение. Попробуйте установить его на любое другое значение, чтобы убедиться, что оно работает. – Costique

0

убедитесь, что вы не установили cell.editing=YES;, кажется интуитивным, но испортил все работы.

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