Cómo implementar métodos de delegado y fuente de datos para UICollectionView cuando está dentro de un TableViewCell personalizado en iOS, objetivo C
Nota: no quiero usar ninguna biblioteca de terceros
yo tengotableview
con una costumbretable view cell
(vista de tabla funcionando bien).Ahora dentro deltable view cell
Quiero implementar uncollection view
.Ahora mi problema es, ¿dónde debo implementar eldelegate
métodos ydata source
métodos para la vista de colección, que está dentro decustom table view cell
. a continuación es lo que he intentado.Implementación de 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;
}
trabajando apropiadamente
ahora dentro de estoFirstTableViewCell
hay uncollection view
.
Este es mi archivo 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
y este es mi archivo 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
siguiente método
- (void)setColletionData:(NSArray *)collectionData
{
self.mycollectionData = collectionData;
[self.insideCollectionView reloadData];
}
Solía configurar elarray
paracollectionView
encellforrowatindexpath
entableview
Entonces, ¿cuál es la forma correcta de implementarDataSource
yDelegate
métodos para elCollectionView
que está dentro delCustom Table View Cell
.