Не удалось сделать сборный вид при использовании объектов Uiimage в ячейке

StackOverflow https://stackoverflow.com//questions/25012382

Вопрос

У меня возникли проблемы с получением этого кода, чтобы запустить после того, как он сбился после нескольких итераций. Предполагаемое поведение - просто отображать изображения в конце коллекции из массива. Если я прокомментую все объекты в массиве, он работает с пустым сбором. 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 знает, какую ячейку использовать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top