iOS CollectionView (2)交互能力 geekband

1.交互能力

--点选
--编辑
----插入.删除
----移动格子
--刷新数据
--将一组编辑或刷新东子合成一个动画过程 -performBathUpdates:completion:
-滚动到某个格子
-动态更换布局

注意:与tabView 除了索引,表格有的集合视图都有

2.Delegate里的交互响应机会

iOS CollectionView (2)交互能力 geekband_第1张图片
2
iOS CollectionView (2)交互能力 geekband_第2张图片
3
iOS CollectionView (2)交互能力 geekband_第3张图片
4

这里在引用上个案例做一个点击事件,点击图片后,进入新viewcontroller放大你所点的图片
打开上一章完成的内容
1.打开storyboard 将navigation加载到 collection


iOS CollectionView (2)交互能力 geekband_第4张图片

2新建viewcontroller
并使collection manual链接到viewcontroller


iOS CollectionView (2)交互能力 geekband_第5张图片
2-1
iOS CollectionView (2)交互能力 geekband_第6张图片
2-2

设置segue


iOS CollectionView (2)交互能力 geekband_第7张图片
2-3

新建viewcontroller文件 为CityDetailViewController
并使storyboard的刚新建view 设置他的class

iOS CollectionView (2)交互能力 geekband_第8张图片
2-4

storyboard的CityDetailviewcontroller 插入image view 并约束


iOS CollectionView (2)交互能力 geekband_第9张图片
2-4
iOS CollectionView (2)交互能力 geekband_第10张图片
2-5

3再加入协议
在viewcontroller.h 里

 @interface ViewController : UIViewController

在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];

你可能感兴趣的:(iOS CollectionView (2)交互能力 geekband)