Note : Je ne souhaite pas utiliser de bibliothèques tierces.
- J'ai
tableview
avec avec un personnalisétable view cell
(l'affichage du tableau fonctionne correctement). - Maintenant, à l'intérieur du
table view cell
Je souhaite mettre en œuvre uncollection view
. - Mon problème est maintenant de savoir où je dois implémenter la fonction
delegate
méthodes etdata source
pour la vue de la collection, qui se trouve à l'intérieur de l'élémentcustom table view cell
Voici ce que j'ai essayé.
Mise en œuvre du contrôleur de vue de tableau
- (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;
}
fonctionner correctement
maintenant à l'intérieur de ce FirstTableViewCell
il existe un collection view
.
Voici mon fichier 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
et voici mon fichier 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
méthode suivante
- (void)setColletionData:(NSArray *)collectionData
{
self.mycollectionData = collectionData;
[self.insideCollectionView reloadData];
}
J'avais l'habitude de régler le array
para collectionView
, en cellforrowatindexpath
en tableview
Quelle est donc la bonne manière de mettre en œuvre
DataSource
yDelegate
pour lesCollectionView
qui se trouve à l'intérieur duCustom Table View Cell
.