Zelle von UICollectionView wird nach einem Bildlauf nicht immer aktualisiert

Ich habe in meinem Storyboard (iPad) eine Ansicht definiert, die a enthältUICollectionViewam unteren Rand der Ansicht gibt es auch eineUIToolbar. In demUICollectionView Ich habe a hinzugefügtUICollectionViewCell (umgesetzt von einemiPadCellCollectionViewCell Klasse), die eine andere Ansicht enthält, die ein Core-Plot-Diagramm ist (aCPTGraphHostingView Klasse).

Ich habe eine Klasse namens X, die das implementiertUICollectionViewDelegate undUICollectionViewDataSource.

In der Klasse X baue ich für jede Zelle meiner Ansicht (inViewDidLoad) Das Core-Plot-Diagramm und ich haben den folgenden Code, um das Diagramm mit der Zelle des zu verknüpfenUICollectionViewCell

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString* cellId = @"ChartCollectionId"; 

iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];

MyChart* chart = [_charts objectAtIndex:indexPath.row];

cell.hostingView.hostedGraph = chart.barChart;

return cell;

}

Es funktioniert gut, alle meine Grafiken werden korrekt auf dem Bildschirm angezeigt. Das Problem tritt auf, wenn der Benutzer durch die Ansicht scrollt und eine oder mehrere Zellen "leer" werden. Ich verstehe wirklich nicht warum.

Ich habe eine Problemumgehung gefunden, anstatt das hinzuzufügenCPTGraphHostingView in demUICollectionViewCell im Interface Builder erstelle ich es selbst und der vorherige Code wird:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
static NSString* cellId = @"ChartCollectionId"; 

iPadCellCollectionViewCell* cell = [self.theCollectionView dequeueReusableCellWithReuseIdentifier:cellId forIndexPath:indexPath];


[cell.contentView addSubview:[_hostingViews objectAtIndex:indexPath.row]];

return cell;

}

Mit diesem Code funktioniert alles gut. Gibt es Erklärungen, warum es nicht funktioniert, wenn ich das hinzufüge?CPTGraphHostingView in demUICollectionViewCell mit dem IB?

Ist es ein Problem, bei jedem Aufruf der Methode "addSubview" aufzurufen? Keine Speicherlecks?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage