您的位置:首页 > 其它

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

2015-12-15 17:08 134 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: