集合视图,类似于gridview之类的

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值