我无法在多次迭代后让代码崩溃后运行此代码。预期的行为是简单地从阵列中显示集合视图中的图像。如果我注释掉数组中的所有对象,它将以空集合视图运行。 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
答案 0 :(得分:0)
调试输出意味着找不到名为“Cell”的单元格。在故事板中,您需要将UICollectionViewCell的Collection Reusable View
值设置为“Cell”,以便UICollectionView知道要使用的单元格