美文网首页
iOS CollectionView (2)交互能力 geekb

iOS CollectionView (2)交互能力 geekb

作者: AAup | 来源:发表于2016-03-23 20:14 被阅读113次

    1.交互能力

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

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

    2.Delegate里的交互响应机会

    2 3 4

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



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


    2-1 2-2

    设置segue


    2-3

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

    2-4

    storyboard的CityDetailviewcontroller 插入image view 并约束


    2-4 2-5

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

    相关文章

      网友评论

          本文标题:iOS CollectionView (2)交互能力 geekb

          本文链接:https://www.haomeiwen.com/subject/xgollttx.html