У меня есть вид таблицы и этот метод, чтобы найти indexPath из подвида одного из своих клеток ...indexPathForCell: возвращение ноля
- (NSIndexPath *)indexPathContainingView:(UIView *)view {
while (view && ![view isKindOfClass:[UITableViewCell self]]) {
view = view.superview;
}
UITableViewCell *cell = (UITableViewCell *)view;
return (cell)? [self.tableView indexPathForCell:cell] : nil;
}
я называю с подвид из верхней ячейки (который видно, как таблица имеет не прокручивается), и, с точкой останова на return
линии, я получаю этот запутанный результат в lldb ...
cell
выглядит хорошо. Табличный вид ячейки соответствует моему tableView
(есть промежуточный UITableViewWrapperView
как прямой просмотр). Но посмотрите, как indexPathForCell:
возвращает нуль? Я уверен, что ячейка видна.
Я не думаю, что это имеет значение, но подзаголовок cell
Я начинаю с UICollectionView
, и я вызываю это в методах источников данных коллекции.
Любые идеи?
EDIT более контекст ...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
// do stuff to setup the cell
// now reload the collection view that it contains
UICollectionView *collectionView = (UICollectionView *)[cell viewWithTag:33];
[collectionView reloadData];
return cell;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
NSIndexPath *indexPath = [self indexPathContainingView:collectionView];
return // get my model from the index path and return the count of an array it contains
// but here's the problem. index path is nil here
}
Является ли ячейка в настоящее время видимой в виде таблицы? Вы видите только путь индекса, если ячейка видна. – rmaddy
Кто вызывает 'indexPathContainingView' и когда? – shallowThought
@rmaddy - да, ячейка является первой ячейкой в нераскрытой таблице. – user1272965