2016-05-20 14 views
1

Ich erstelle eine TableView, die Sammlung innerhalb hat.Eigenschaft in Sammlung hinzufügen Ansicht innerhalb von uitableviewcell

was ich getan habe: 1. Erstellt eine Tabellenansicht in einem Controller. 2. erstellt eine benutzerdefinierte TabelleViewCell mit CollectionView innerhalb davon und bietet es mit Tag 3. Erstellt eine benutzerdefinierte CollectionViewcell.

Jetzt machte ich Controller den Delegaten und die Datenquelle für CollectionView und TableView.

nun mehrere tableViewcells haben und jeder tableViewCell hat Collection

One tableViewCell einen Abschnitt hat Tableview sollte. Problem: -

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

self.arrayModel = self.SlotsArray[indexPath.section]; 
} 

Aber hier ist ein Haken: lässt das LCD-Display sagen Größe zeigt zwei tableViewcell, dann werden alle Methoden der tableCells genannt werden und dann alle Methoden der Collection genannt werden, statt ich will, dass nach dem 1. Abschnitt tableViewcell wird erstellt, sollte collectionView-Methoden aufrufen und sie erstellen. dann gehen Sie zu TableView Methode machen 2. Abschnitt und dann erstellen Sie seine CollectionView.

Ist es weg, dies zu tun.

Irgendwo ich auf net lesen thet ich muss CollectionView ableiten und fügen Sie einen Eigenschaftenindex und dann beim Festlegen von viewcontroller als Delegat und Datenquelle, legen Sie auch Index.

aber ich habe Collection von nib erstellt und an die Tablecell-Klasse das Hinzufügen von „TAG“

self.imageCollectionView = [self.contentView viewWithTag:2511]; 

Können Sie sagen, wie kann ich das erreichen?

+0

Ich verstehe Ihre Frage, aber ich bin mir ziemlich sicher, dass Sie sich in einige böse UI sind bogging. Technisch wird die Tabellenansicht jede Zeile nacheinander erstellen. Da Ihre benutzerdefinierte Zelle über eine Sammlungsansicht verfügt, wird für jede Zelle eine eigene Sammlungsansicht erstellt. Ich bin mir nicht sicher, ob deine Aussage richtig war. Ich müsste das überprüfen, aber ich bin mir fast sicher, dass die Tabellenansicht Cell1 erstellt, und da cell1 über eine Sammelansicht verfügt, erstellt sie ihre Sammlungsansicht, und erst dann, wenn sie fertig ist, erstellt die Tabellenansicht Zelle2. Der einzige Grund, der nicht passieren würde, ist, wenn alles im Controller war. –

+0

Oder vielleicht bin ich komplett falsch in meinen Annahmen –

+0

@Zil Ja, beide der CollectionView und TableView haben dort Delegate und DataSource als ViewController. –

Antwort

1

In Ihrem Fall sollten Sie eine Tabellenansicht mit Zellen haben. In jeder Zelle befindet sich eine Sammlungsansicht.

Anzahl der Tabellenansichtszellen entspricht der Anzahl Ihrer Datenquellen. Wie wir alle wissen, wird die Tabellenansichtszelle einzeln erstellt und jeder Zelle eine Datenquelle zugewiesen, die zum Füllen Ihrer Sammlungsansicht (die sich in jeder Zelle befindet) verwendet wird.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{  
    CategoryCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifierCategory forIndexPath:indexPath]; 

    NSArray *arrVideos = [parentArray objectAtIndex:indexPath.row]; 
    [cell setCollectionData:arrVideos]; 

    return cell; 
} 

nun innerhalb dieser Tabelle Ansicht Zellklasse, implementieren setCollectionData Methode seiner Auflistungsansicht zu füllen:

- (void)setCollectionData:(NSArray *)collectionData 
{ 
    self.arrCollectionData = collectionData; 
    [self.yourCollectioView reloadData]; 
} 

Nun würde jede Sammelzelle aus diesem Array speisen werden:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
{ 
    VideoCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:kCellIdentifierVideo forIndexPath:indexPath]; 
    NSDictionary *_video = [self.arrCollectionData objectAtIndex:[indexPath row]]; 

    // Use this dictionary 

    [cell.lblVideoTitle setText:_video.title]; 

    –––––––––– 
    –––––––––– 

    return cell; 
} 

Siehe folgendes Bild:

enter image description here

Hoffe es hilft dir !!!

+0

Sudhanshu, ist funktioniert es für dich? – NSPratik

+1

Danke dafür, Kumpel! –

Verwandte Themen