У меня проблема с изображениями, которые не отображаются, даже если они загружаются. Я пробовал это несколько разных способов и тот же результат ... никаких изображений. Я получаю белые прямоугольники, размер и цвет которых указаны в раскадровке. Я получаю правильное количество прямоугольников в popover. Журнал показывает имена и идентификаторы правильно.UICollectionView изображения не отображаются
Если я вызываю массив напрямую, я получаю тот же результат ... белые прямоугольники.
Моя цель iOS7. Запуск Xcode 5.0.2. Изображения поступают из базы данных SQL. Это живое приложение, которое я обновляю до полного iOS7 и где я заменяю пользовательскую схему сетки для UICollectionView. Использование CollectionViewController, встроенного в NavigationController, доступ к которому осуществляется через UIButton. Как вы можете видеть, нет пользовательской ячейки. Изображения должны отображаться в popover и затем выбираются пользователем для изменения фона основного представления.
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"BckgndCell" forIndexPath:indexPath];
NSDictionary * tempDict = [_arrayOfBckgnds objectAtIndex:indexPath.row];
NSNumber *buttonTagNumber = (NSNumber *)[tempDict objectForKey:@"id"];
int buttonTag = [buttonTagNumber intValue];
NSString *tempImage = [tempDict objectForKey:@"fileName"];
NSLog(@"Filename: %@", tempImage);
NSLog(@"ButtonTagNumber: %@", buttonTagNumber);
UIImageView *image = [[UIImageView alloc]init];
image.image = [UIImage imageNamed:tempImage];
NSLog(@"Image.image: %@", image.image);
// needed for selecting the background in didSelectItemAtIndexPath
_bgtag = buttonTag;
return cell;
}
Исправление который включает в себя собственно именования BackgroundCell (Дух) в методе cellForItemAtIndexPath и создание небольшой метод в контроллере BackgroundCell для установки изображения.
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
BackgroundCell *cell = (BackgroundCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"BckgndCell" forIndexPath:indexPath];
NSDictionary * tempDict = [_arrayOfBckgnds objectAtIndex:indexPath.row];
NSNumber *buttonTagNumber = (NSNumber *)[tempDict objectForKey:@"id"];
int buttonTag = [buttonTagNumber intValue];
NSString *tempImage = [tempDict objectForKey:@"fileName"];
[cell setImage:[UIImage imageNamed:tempImage]];
// needed for selecting the background in didSelectItemAtIndexPath
_bgtag = buttonTag;
return cell;
}
Основной код ячейки;
- (id)initWithFrame:(CGRect)frame
{
_backgroundImage = [[UIImageView alloc] initWithFrame:self.contentView.bounds];
[self.contentView addSubview:_backgroundImage];
if (self) {
// Initialization code
}
return self;
}
-(void)setImage:(UIImage *)image
{
_backgroundImage.image = image;
}
У меня есть изображения, показывающие сейчас ... взяли длинный перерыв для другой работы. Главное, вызывая контроллер ячейки и несколько других вещей. Мои исправления добавлены выше. –