我正在使用UICollectionView和LXReorderableCollectionViewFlowLayout的修改版本,並且我最後兩個單元格中的數據被混淆了。UICollectionView數據被重新排序
2個單獨的圖像顯示在每個單元格中,下面有一個標籤,當我離開viewController並返回時,我調用reloadData。每次調用時,單元格中的圖像都會交換。然而,標籤保持在同一個地方。
這裏是我用來繪製我有問題的單元格的代碼。
SettingsTile *setTileD = (SettingsTile *)[collectionView dequeueReusableCellWithReuseIdentifier:@"settingsReuse" forIndexPath:indexPath];
NSString *songTitle = [colors objectAtIndex:indexPath.row];
MPMediaQuery *query = [MPMediaQuery songsQuery];
[query addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:songTitle forProperty:MPMediaItemPropertyTitle]];
if ([query items].count > 0)
{
MPMediaItemArtwork *art = [[[query items] objectAtIndex:0] valueForProperty:MPMediaItemPropertyArtwork];
UIImage *im = [art imageWithSize:CGSizeMake(145, 145)];
setTileD.titleLabel.text = songTitle;
setTileD.titleLabel.textColor = [UIColor whiteColor];
UIImageView *imView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 145, 145)];
imView.image = im;
[setTileD addSubview:imView];
[setTileD sendSubviewToBack:imView];
return setTileD;
}
else
{
return nil;
}
第一次應用程序運行的圖像被混合起來,可能是因爲當第一次顯示的viewController viewDidAppear也叫,當用戶回來吧,圖像不會混淆。這個過程重演。
reloadData被調用爲正常(例如[collectionView reloadData];)。
我是UICollectionView的新手,並且附有課程,所以請親切。 :)
你能解釋一下,你是什麼意思「..把UIImageViews在一個backgroundView ..」?謝謝 – MAMN84
我用這個來解決類似的問題。在cellForItemAtIndexPath,我使用:cell.backgroundView = [[ALLOC的UIImageView] initWithImage:[UIImage的imageNamed:@ 「bg.png」]]; – dave