Ho definito nella mia Storyboard (iPad) una vista che contiene uno UICollectionView
, nella parte inferiore della vista c'è anche uno UIToolbar
. Nel UICollectionView
ho aggiunto un UICollectionViewCell
(implementato da una classe iPadCellCollectionViewCell
) che contiene un'altra vista che è un grafico di core-plot (una classe CPTGraphHostingView
).Cella di UICollectionView non sempre aggiornata dopo una scroll
Ho una classe chiamata X che implementa lo UICollectionViewDelegate
e UICollectionViewDataSource
.
Nella classe X, ho costruire per ogni cella del mio punto di vista (in ViewDidLoad
) Core-Plot Grafico e ho il seguente codice per linkare il grafico alla cella del 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;
}
Sta funzionando bene, tutti i miei grafici sono visualizzati correttamente sullo schermo. Il problema si verifica quando l'utente scorre la vista, quindi una o più celle diventano "vuote". Io davvero non capisco perché.
ho trovato una soluzione, invece di aggiungere il CPTGraphHostingView
nel UICollectionViewCell
in Interface Builder, costruisco io stesso e il codice precedente diventa:
- (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;
}
Con questo codice è tutto funziona bene. C'è qualche spiegazione sul perché non funziona quando sto aggiungendo il CPTGraphHostingView
nel UICollectionViewCell
con l'IB?
È un problema chiamare "addSubview" ogni volta che viene chiamato il metodo? Nessuna perdita di memoria?
Dove posso vedere quel bug report? – bandejapaisa