在Cell中使用UIImage对象时无法使集合视图出列

时间:2014-07-29 09:44:02

标签: xcode uiimageview uicollectionview sigabrt

我无法在多次迭代后让代码崩溃后运行此代码。预期的行为是简单地从阵列中显示集合视图中的图像。如果我注释掉数组中的所有对象,它将以空集合视图运行。 logo.png存在,可以通过下拉列表正确加载到应用程序的其他部分。 Delegate和DataSource已正确设置为self。 Collection View有一个单元格,其中包含一个ImageView(标记为100),没有其他内容。使用标签而不是图像视图也会导致阵列中的任何对象崩溃。

调试输出

  

无法使类型的视图出列:具有标识符Cell的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

1 个答案:

答案 0 :(得分:0)

调试输出意味着找不到名为“Cell”的单元格。在故事板中,您需要将UICollectionViewCell的Collection Reusable View值设置为“Cell”,以便UICollectionView知道要使用的单元格