Ich habe in meinem Storyboard (iPad) eine Ansicht definiert, die eine UICollectionView
enthält, am unteren Rand der Ansicht gibt es auch eine UIToolbar
. In der UICollectionView
habe ich eine UICollectionViewCell
(durch eine iPadCellCollectionViewCell
Klasse implementiert) hinzugefügt, die eine andere Ansicht enthält, die ein Core-Plot Graph (eine CPTGraphHostingView
Klasse) ist.Zelle von UICollectionView nicht immer nach einem Bildlauf aktualisiert
Ich habe eine Klasse namens X, die die UICollectionViewDelegate
und UICollectionViewDataSource
implementiert.
In der Klasse X, baue ich für jede Zelle meiner Ansicht (in ViewDidLoad
) Core-Plot Graph und ich habe den folgenden Code, um das Diagramm, um die Zelle der UICollectionViewCell
- (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;
} verlinken
Es funktioniert gut, alle meine Diagramme werden korrekt auf dem Bildschirm angezeigt. Das Problem tritt auf, wenn der Benutzer die Ansicht scrollt, dann werden eine oder mehrere Zellen "leer". Ich verstehe wirklich nicht warum.
ich eine Abhilfe gefunden haben, statt die CPTGraphHostingView
im UICollectionViewCell
im Interface Builder hinzufügen, baue 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 ist alles funktioniert gut. Gibt es irgendwelche Erklärungen, warum es nicht funktioniert, wenn ich die CPTGraphHostingView
in der UICollectionViewCell
mit dem IB hinzufüge?
Ist es ein Problem, bei jedem Aufruf der Methode "addSubview" aufzurufen? Keine Speicherlecks?
Wo sehe ich diesen Fehlerbericht? – bandejapaisa