1.交互能力
--点选
--编辑
----插入.删除
----移动格子
--刷新数据
--将一组编辑或刷新东子合成一个动画过程 -performBathUpdates:completion:
-滚动到某个格子
-动态更换布局
注意:与tabView 除了索引,表格有的集合视图都有
2.Delegate里的交互响应机会
这里在引用上个案例做一个点击事件,点击图片后,进入新viewcontroller放大你所点的图片
打开上一章完成的内容
1.打开storyboard 将navigation加载到 collection
2新建viewcontroller
并使collection manual链接到viewcontroller
设置segue
新建viewcontroller文件 为CityDetailViewController
并使storyboard的刚新建view 设置他的class
storyboard的CityDetailviewcontroller 插入image view 并约束
3再加入协议
在viewcontroller.h 里
@interface ViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegate>
在viewcontroller.m里
@implementation ViewController下添加
#pragma mark --- Delegate ---
-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{
[self performSegueWithIdentifier:@"showCity" sender:collectionView];
}
#pragma mark --- Navgation ---
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ( [segue.identifier isEqualToString:@"showCity"] ) {
// current item =>> destination viewcontroller
UICollectionView *cv = (UICollectionView*)sender;
NSArray < NSIndexPath*>* items = [cv indexPathsForSelectedItems];
CityDetailViewController *cityViewController = (CityDetailViewController *)segue.destinationViewController;
[cityViewController displayCityWithId:items[0].item];//这方法要到 CityDetailViewController里实现
}
}
在CityDetailViewController.h添加
-(void)displayCityWithId:(NSInteger)cityID;
然后在CityDetailViewController.m 添加
@interface CityDetailViewController (){
NSInteger _cityId;
}
在@implementation CityDetailViewController下
-(void)displayCityWithId:(NSInteger)cityID{
_cityId = cityID;
}
-(UIImage *)imageOfCity{
return [UIImage imageNamed:[NSString stringWithFormat:@"city%d",(int)_cityId]];
}
在- (void)viewDidLoad下
self.imageView.image = [self imageOfCity];