xcode storyboard вложенный массив таблиц pass
Я взял пример сценария приложения, похожего на импульс из Интернета, который состоит из файлов XIB, и я структурировал его, чтобы перейти в раскадровку, чтобы использовать горизонтальную прокрутку таблицы.
По какой-то причине "cell = tableViewCell" в tableView.m продолжает работать со мной из-за ошибки подтверждения UITableView dataSource должен вернуть ячейку из tableView:cellForRowAtIndexPath
Если я закомментирую "cell = tableViewCell", программа будет работать без сбоев, но я не передаю информацию в tableViewCell.
Есть ли простое решение, которое я просто не вижу?
tableView.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
TableViewCell *cell = (TableViewCell*)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
CGAffineTransform rotateTable = CGAffineTransformMakeRotation(-M_PI_2);
tableViewCell.horizontalTableView.transform = rotateTable;
tableViewCell.horizontalTableView.frame = CGRectMake(0, 0, tableViewCell.horizontalTableView.frame.size.width, tableViewCell.horizontalTableView.frame.size.height);
tableViewCell.contentArray = [arrays objectAtIndex:indexPath.section];
tableViewCell.horizontalTableView.allowsSelection = YES;
cell = tableViewCell;
return cell;
}
tableViewCell.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.horizontalTableView dequeueReusableCellWithIdentifier:CellIdentifier];
for (UIImageView *view in cell.subviews) {
[view removeFromSuperview];
}
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
imageView.image = [contentArray objectAtIndex:indexPath.row]];
imageView.contentMode = UIViewContentModeCenter;
CGAffineTransform rotateImage = CGAffineTransformMakeRotation(M_PI_2);
imageView.transform = rotateImage;
[cell addSubview:imageView];
return cell;
}
1 ответ
Вы должны размещать и инициировать новую ячейку таблицы только в том случае, если dequeue возвращает nil.
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] ;
}
Пример, который вы используете http://iosstuff.wordpress.com/2011/06/29/creating-pulse-style-scrolling-horizontally-scrolling-uitableview-as-a-subview-of-uitableviewcell/, действительно старый и для iOS 4. В прошлом году в iOS 6 Apple добавила Collection Views, чтобы делать подобные вещи.
Вы должны проверить:
WWW2012 Сессия 205. Представление коллекций: https://developer.apple.com/videos/wwdc/2012/?id=205
Лекция 7 Представления коллекции https://itunes.apple.com/us/course/coding-together-developing/id593208016