Mam zdefiniowany w moim Storyboard (iPad) widoku, który zawiera UICollectionView
, w dolnej części widoku jest również UIToolbar
. W wersji UICollectionView
dodano UICollectionViewCell
(zaimplementowany przez klasę iPadCellCollectionViewCell
), która zawiera inny widok, którym jest wykres Core-Plot (klasa CPTGraphHostingView
).Komórka UICollectionView nie zawsze odświeżana po przewinięciu
Mam klasę o nazwie X, która implementuje UICollectionViewDelegate
i UICollectionViewDataSource
.
w klasie X, I zbudować dla każdej komórce moim zdaniem (w ViewDidLoad
) Core-Plot Graph i mam następujący kod do połączenia wykres w komórce 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;
}
Działa poprawnie, wszystkie moje wykresy są poprawnie wyświetlane na ekranie. Problem występuje, gdy użytkownik przewinie widok, a następnie jedna lub kilka komórek stanie się pusta. Naprawdę nie rozumiem, dlaczego.
Znalazłem obejście, zamiast dodawania CPTGraphHostingView
w UICollectionViewCell
w konstruktorze interfejsu, mam zbudować sobie i poprzedni kod staje:
- (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;
}
z tego kodu wszystko jest Dobrze pracować. Czy są jakieś wyjaśnienia, dlaczego nie działa, gdy dodam CPTGraphHostingView
z UICollectionViewCell
do IB?
Czy wywołanie metody "addSubview" jest wywoływane przy każdym wywołaniu metody? Brak wycieków pamięci?
Gdzie mogę wyświetlić ten raport o błędzie? – bandejapaisa