Wie das umzusetzen, delegate und datasource-Methoden für die UICollectionView, wenn es innerhalb einer benutzerdefinierten TableViewCell in iOS, objective-C

Hinweis : ich möchte nicht alle Bibliotheken von Drittanbietern

  • Ich habe tableview mit mit einer custom table view cell (table view funktioniert Prima).
  • Nun in die table view cell ich umsetzen wollen einen collection view.
  • Nun mein problem ist , wo sollte ich mit der Umsetzung der delegate Methoden und data source Methoden zur Sammlung anzeigen, die in den custom table view cell . unten ist das, was ich versucht habe.

Tabel-View-Controller Implementierung

- (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;
}

richtig funktioniert

nun in diesem FirstTableViewCell es ist ein collection view.

Dies ist mein FirstTableViweCell.h-Datei

#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

und das ist mein FirstTableViewCell.m-Datei

#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

folgende Methode

- (void)setColletionData:(NSArray *)collectionData
    {
        self.mycollectionData = collectionData;
        [self.insideCollectionView reloadData];
    }

Ich verwendet, um die array für collectionView im cellforrowatindexpath im tableview

Also, was ist die richtige Art zu implementieren DataSource und Delegate
Methoden für die CollectionView innerhalb der Custom Table
View Cell
.

  • Sie tun perfekt. 🙂
Schreibe einen Kommentar