Не удалось сделать сборный вид при использовании объектов Uiimage в ячейке
-
20-12-2019 - |
Вопрос
У меня возникли проблемы с получением этого кода, чтобы запустить после того, как он сбился после нескольких итераций. Предполагаемое поведение - просто отображать изображения в конце коллекции из массива. Если я прокомментую все объекты в массиве, он работает с пустым сбором. logo.png существует и может быть правильно загружен в другие части приложения через раскрывающуюся. Делегат и DataSource должным образом устанавливаются на себя. Вид сбора имеет одну ячейку, отображаемую с помощью ImageView в нем (помеченном как 100) и ничего другого. Имея метку вместо изображения изображения, вызывает аварию с любыми объектами в массиве.
Вывод отладки составляет
не может сделать вид на рода: UiCollectionElementKindcell с идентификаторной ячейкой - должен
Зарегистрируйте NIB или класс для идентификатора или подключите клетку прототипа в раскадровке
Соответствующий код следующий:
<Сильные> ViewController.m
#import "demo_frameworkViewController.h"
@interface demo_frameworkViewController ()
@end
@implementation demo_frameworkViewController {
NSMutableArray *imageArray;
}
@synthesize imageArray;
- (void)viewDidLoad
{
imageArray = [[NSMutableArray alloc] init];
[imageArray addObject:[UIImage imageNamed:@"logo.png"]];
[imageArray addObject:[UIImage imageNamed:@"logo.png"]];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark Collection View Methods
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return [self.imageArray count];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
UIImageView *imageDemo = (UIImageView *)[cell viewWithTag:100];
imageDemo.image =[imageArray objectAtIndex:indexPath.row];
[cell.layer setBorderWidth:2.0f];
[cell.layer setBorderColor:[UIColor whiteColor].CGColor];
return cell;
}
@end
.
<Сильные> ViewController.h
#import <UIKit/UIKit.h>
@interface demo_frameworkViewController : UIViewController <UINavigationControllerDelegate, UICollectionViewDelegate, UICollectionViewDataSource>
@property (nonatomic, retain) NSArray *imageArray;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
. Решение
Выход отладки означает, что он не может найти клетку, называемую «ячейку».В вашей раскадровке вам необходимо установить значение Collection Reusable View
UiCollectionViewCell на «Cell», чтобы UiCollectionView знает, какую ячейку использовать