events.plist
可以直接在列表中增加,也可以代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>image</key>
<string>archery.gif</string>
<key>name</key>
<string>archery</string>
</dict>
<dict>
<key>image</key>
<string>athletics.gif</string>
<key>name</key>
<string>athletics</string>
</dict>
<dict>
<key>image</key>
<string>badminton.gif</string>
<key>name</key>
<string>badminton</string>
</dict>
<dict>
<key>image</key>
<string>basketball.gif</string>
<key>name</key>
<string>basketball</string>
</dict>
<dict>
<key>image</key>
<string>beach-volleyball.gif</string>
<key>name</key>
<string>beach-volleyball</string>
</dict>
<dict>
<key>image</key>
<string>boxing.gif</string>
<key>name</key>
<string>boxing</string>
</dict>
<dict>
<key>image</key>
<string>canoe-slalom.gif</string>
<key>name</key>
<string>canoe-slalom</string>
</dict>
<dict>
<key>image</key>
<string>canoe-sprint.gif</string>
<key>name</key>
<string>canoe-sprint</string>
</dict>
</array>
</plist>
Cell.h 定义Cell的样式
#import <UIKit/UIKit.h>
@interface Cell:UICollectionViewCell
@property (weak, nonatomic) IBOutlet UIImageView *image;
@property (weak, nonatomic) IBOutlet UILabel *label;
@end
Cell.m
#import "Cell.h"
@implementation Cell
-(id) initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
@end
Collection View 记得要重用,在Collection Resuable View 的Identifier中输入Cell,下面的代码就是重用这个标示的Cell控件
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UICollectionViewController
@end
ViewController.m
#import "ViewController.h"
#import "Cell.h"
@interface ViewController ()
@property (strong, nonatomic) NSArray * events;
@end
@implementation ViewController
#pragma mark - 加载视图
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle pathForResource:@"events"
ofType:@"plist"];
//获取属性列表文件中的全部数据
NSArray *array = [[NSArray alloc] initWithContentsOfFile:plistPath];
self.events = array;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
#pragma mark - UICollectionViewDataSource
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return [self.events count] / 2;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 2;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];
NSDictionary *event = [self.events objectAtIndex:(indexPath.section*2 + indexPath.row)];
cell.label.text = [event objectForKey:@"name"];
cell.image.image = [UIImage imageNamed:[event objectForKey:@"image"]];
return cell;
}
#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
NSDictionary *event = [self.events objectAtIndex:(indexPath.section*2 + indexPath.row)];
NSLog(@"select event name : %@", [event objectForKey:@"name"]);
}
@end