2012-04-05 2 views
0

Я нашел множество вопросов, которые задают почти то, что я хочу, но пока не смогли реализовать собственное решение.UITableViewCell отключить ячейку, затем снова включить и обновить без перезагрузки.

У меня есть 2 раздела в моем UITableViewController, и до сих пор все работает довольно хорошо. У меня есть AlarmEnabled UISwitch и ячейка AlarmDate, которая вытягивает таблицу UIActionSheet, чтобы можно было выбрать дату пожара и т. Д. Я пытаюсь отключить/вычеркнуть ячейку AlarmDate (ячейку 0), когда кто-то отрицает AlarmEnabled UISwitch в «в реальном времени». Это делает работает, но только если я a) Отрицательный UISwitch b) Выход из режима Отмена/Сохранение UIButton c) Повторно введите вид.

Я до сих пор пытался Tableview: reloadRowsAtIndexPath: метод следующим образом:

NSIndexPath *tempIndexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
NSArray *tempIndexPathArray = [[NSArray alloc] initWithObjects:tempIndexPath, nil]; 
[self.tableView reloadRowsAtIndexPaths:tempIndexPathArray withRowAnimation:UITableViewRowAnimationNone]; 
[tempIndexPathArray release]; 

Возможно, из-за мое двухпозиционное отношение с программированием IOS, я просто неправильно понять, где этот код должен быть помещен (в настоящее время в пределах селектор для аксессуара AlarmEnabled UISwitch), но он не выполняет то, что мне нужно (но звучит так, как если бы оно использовалось правильно).

Я думал, я бы попытаться увеличить свою познавательную и попробовать что-то вроде следующего в селекторе для UISwitch,

#define NOT(a) !a 
.... 
UITableViewCell *tempCellAlarmDate = [self.tableViewController.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; 
tempCellAlarmDate.userInteractionEnabled = NOT(tempCellAlarmDate.userInteractionEnabled); 
// forget transparency for now. 
//tempCellAlarmDate.alpha = 0.0; 

.. но оживленно рыси грызун питания динамо в моем черепе не одобрить этот код, и, таким образом, моя мечта о переключении в режиме реального времени userInteractionEnabled не выполняется.

Любые советы оценили :-)

Благодарности

подкожно.

+0

'#define NOT (a)! A' - вы шутите? – Sulthan

+0

@ Султан -пожалуйста, объясните, что вы имеете в виду, вместо того, чтобы публиковать риторику. – swisscheese

+0

Вы используете макрос, чтобы преобразовать язык программирования в собственный язык программирования. Это не очень хорошая идея. – Sulthan

ответ

0

Мне не хватает, когда вы вызываете метод setEnabled: в ячейке. Или вы отключите его, используя другой метод? По моему опыту setEnabled: NO отключает ячейку в реальном времени и setEnabled: YES возвращает ее обратно. Может, я что-то упустил?

+0

Привет, я не уверен в том, к какому классу вы обращаетесь, поскольку UITableViewCell, похоже, не содержит метод setEnabled :. Вы можете уточнить? Благодаря! – swisscheese

+0

Мой плохой. setEnabled находится в NSControl, который наследуется NSTableViewCell, но не UITableViewCell. Возможно, вы можете установить свойство editingStyle, но я не уверен, имеет ли он немедленный эффект, как setEnabled. – DRVic

+0

Нет проблем! Мой поиск продолжается :-) Спасибо за ваше время. – swisscheese