zoukankan      html  css  js  c++  java
  • 图片浏览器

      项目需要做类似淘宝等商城的商品图片浏览器,网上已经有一些类似的第三方框架例如MWPhotoBrowser等,这里介绍一下自己实现的细节,可以参考学习下不同Controller之间的转场动画。

      首先要搞明白层次结构,我们需要的效果是:点击图片轮播器中的某张图片,弹出大图,可以缩放,滑动可以切换图片,点击大图,缩放回对应的小图。所以,我们Modal出CollectionView来是图片可以滑动切换,在其每个ItemCell中放一个ViewController,在ViewController的View中添加ScrollView,在ScrollView中添加ImageView,来显示图片,同时使图片可以缩放。做好层次结构之后,只需要把对应的需要展示图片设置好,就ok了。

      然后就是做转场动画的效果。

      指定要弹出的Controller的Moda的Style,以及代理

        photoVc.modalPresentationStyle = UIModalPresentationCustom;
        photoVc.transitioningDelegate = self;

      遵守代理协议  UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate

      实现代理方法:

    - (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source;  // 负责转场
    
    - (nullable id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed; // 负责结束转场
    
    - (NSTimeInterval)transitionDuration:(nullable id <UIViewControllerContextTransitioning>)transitionContext; // 转场时间
    
    - (void)animateTransition:(id <UIViewControllerContextTransitioning>)transitionContext; // 转场动画的具体细节

    现在就可以按照自己想要的方式做转场动画了。

    具体代码可以参考Demo

  • 相关阅读:
    java多线程开发容易犯的错误
    个性化推荐系统(九)--- 电商商品个性化推荐系统
    servlet的生命周期
    Servlet的执行过程
    Tomcat发布项目的几种方式
    xml文件解析
    linux执行wget url时提示“无法建立 SSL 连接”
    Linux使用yum install 安装程序时,提示“另外一个程序锁定了 yum;等待它退出……”
    线程状态
    单例模式和多线程
  • 原文地址:https://www.cnblogs.com/yangzhifan/p/5080272.html
Copyright © 2011-2022 走看看