Как реализовать методы делегата и источника данных для UICollectionView, когда он находится внутри пользовательского TableViewCell в iOS, цель C
Примечание: я не хочу использовать сторонние библиотеки
я имеюtableview
с обычаемtable view cell
(просмотр таблицы работает нормально).Теперь внутриtable view cell
Я хочу реализоватьcollection view
.Теперь моя проблема в том, где я должен реализоватьdelegate
методы иdata source
методы для представления коллекции, которая находится внутриcustom table view cell
, ниже то, что я пробовал.Реализация Tabel View Controller
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 5;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
FirstTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tvcell"];
return cell;
}
работает правильно
теперь внутри этогоFirstTableViewCell
Eстьcollection view
.
Это мой файл FirstTableViweCell.h
#import <UIKit/UIKit.h>
@interface FirstTableViewCell : UITableViewCell<UICollectionViewDelegate,UICollectionViewDataSource>
@property (weak, nonatomic, nullable) IBOutlet UICollectionView *insideCollectionView;
@property (strong, nonnull,nonatomic) NSArray *mycollectionData;
- (void)setColletionData :(nonnull NSArray *)collectionData;
@end
и это мой файл FirstTableViewCell.m
#import "FirstTableViewCell.h"
@implementation FirstTableViewCell
- (void)awakeFromNib {
[super awakeFromNib];
self.insideCollectionView.delegate = self;
// Initialization code
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
- (void)setColletionData:(NSArray *)collectionData
{
self.mycollectionData = collectionData;
[self.insideCollectionView reloadData];
}
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 10;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *ccell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cvcell" forIndexPath:indexPath];
return ccell;
}
@end
следующий метод
- (void)setColletionData:(NSArray *)collectionData
{
self.mycollectionData = collectionData;
[self.insideCollectionView reloadData];
}
Я использовал, чтобы установитьarray
заcollectionView
, вcellforrowatindexpath
вtableview
Итак, как правильно реализоватьDataSource
а такжеDelegate
методы дляCollectionView
который находится внутриCustom Table View Cell
.