добавление accessorytype без использования делегатов - PullRequest
0 голосов
/ 30 мая 2011

есть ли способ добавить cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;к каждой строке в таблице без использования функций tableView делегата? (причина этого немного сложна ..)

я думаю о вещах типа

for(UITableViewCell *cell in TheTable){
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}

, но это не сработает ..есть идеи?

ты заранее!

Ответы [ 2 ]

1 голос
/ 30 мая 2011

У вас никогда не будет доступа ко всем ячейкам объекта UITableView.Вы можете получить доступ к видимым ячейкам, как упомянутое @Jhaliya.Конечно, в данном случае лучше всего использовать переменную экземпляра BOOL, чтобы отслеживать наличие в ячейках кнопки раскрытия подробностей и переворачивать их.

BOOL isDetailDisclosureAccessoryVisible;

In tableView:cellForRowAtIndexPath:,

if ( isDetailDisclosureAccessoryVisible ) {
    cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
} else {
    cell.accessoryType = UITableViewCellAccessoryNone;
}

Если вы хотите сделать их доступными,

isDetailDisclosureAccessoryVisible = YES;
[TheTable reloadRowsAtIndexPaths:[TheTable indexPathsForVisibleRows]
                WithRowAnimation:UITableViewRowAnimationNone]; //Choose an appropriate animation here. 
1 голос
/ 30 мая 2011

Вы можете сделать это, обратившись к UITableViewCell в определенных вами функциях.

В UITableView имеется номер функции, который вы можете использовать для доступа к UITableViewCell вне функций делегата.

- (NSArray *)visibleCells;
- (NSArray *)indexPathsForRowsInRect:(CGRect)rect;
- (NSArray *)indexPathsForVisibleRows;

Для доступа к ячейке для заданного indexPath используйте нижеmethod.

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

Подробнее читайте UITabelView Apple Doc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...