Я создаю приложение для изучения китайского языка с разделом для правильного произнесения определенных звуков. Чтобы организовать эти звуки в таблицу, я создал UICollectionView
, где каждый UICollectionViewCell
содержит UITableView
.
Каждый UICollectionViewCell
действует как столбец и содержит UITableView
.
Каждый UITableViewCell
действует как строка в каждом столбце.
Это приводит к следующему виду.
Однако, хотя я легко могу обнаружить касания на каждом UICollectionViewCell
, используя collectionView:didSelectItemAtIndexPath:
, я не могу обнаружить никаких касаний на UITableViewCell
с в течение.
Преобразую ли я представление в ячейкечтобы быть кнопкой, или я как UITapGestureRecognizer
, или использую ли я функцию tableView:didSelectItemAtIndexPath
, в UITableView
.
не обнаруживаются никакие касания. Как я могу позволить своему коду правильнообнаружить эти прикосновения на UITableViewCell
с в UICollectionView
?
Спасибо!
Обновление 1:
Вот @интерфейсфайл столбца .h (UICollectionViewCell)
@interface PronounciationColumn : UICollectionViewCell <UITableViewDelegate, UITableViewDataSource>
В .m UICollectionViewCell для делегата и источника данных tableView установлено значение self.
Обновление 2:
У другого пользователя была действительно аккуратная идея установить делегата tableView для его собственного collectionViewCell, используя следующий код:
- (PronounciationColumn *)collectionView:(nonnull UICollectionView *)collectionView cellForItemAtIndexPath:(nonnull NSIndexPath *)indexPath {
PronounciationColumn *column;
NSString *columnIdentifier = [self getIdentifier:collectionView];
if (column == nil) {
column = (PronounciationColumn *)[collectionView dequeueReusableCellWithReuseIdentifier:columnIdentifier forIndexPath:indexPath];
column.arrayOfFinals = [[self getArrayOfPinyins:collectionView] objectAtIndex:indexPath.item];
}
column.tableOfFinals.delegate = column;
column.tableOfFinals.dataSource = column;
return column;
}
TableView продолжаетсяоднако для правильного заполнения касания по-прежнему не обнаруживаются в ячейках, так как tableView:didSelectRowAtIndexPath:
все еще не вызывается.