我想做一个类似于最新版本的qq的左右滑动,然后弹出两个界面同时存在的效果应该怎么去实现呢?就是把在当前界面向右滑动下后整个这个界面会向右隐藏一半,左边在这个当前视图下面慢慢弹出一个视图。         求知道的大神给个思路,不一定要具体的代码

解决方案 »

  1.   

    这个主要是视图层级的问题了,在rootViewController上放两个VC,左边的在后面,右边的(带TabBarControllr的VC)在前面,在rootViewController上放一个Pan的手势识别器。
      

  2.   

    但是两个界面都要推出子视图啊   我是像把tabbar添加在window上   这样可以设计出来吗
      

  3.   

    是两个子视图,只不过这两个子视图都在rootViewController上:
    rootViewController:
    |---------leftViewController
    |---------rightViewController
    你如果把view添加到window上,那controller这个角色由谁来担任?由window(window继承自view)来担任?这显然不合理,如果是rootViewController的话,通过childViewController持有leftViewController的引用,使controller不被释放,然后View还是添加到rootViewController上,leftView的相关逻辑就放到leftViewController里,这样一来,耦合度就减少了很多,不需要leftViewController的时候,window不需要任何操作,rootViewController里操作也不多
      

  4.   

    你说的这个是只能切换rootView下的左右视图吧,不能把tabbar的tabbaritem也跟着移动把,我的想法是先建立tabbar,给tabbar添加rootView   然后在rootview的界面上右移能够把整个tabbar也跟着移动啊  然后在左边再弹出一个视图控制器
      

  5.   

    我的意思就是给TabBar添加rootView,但是在添加rootView的同时,再添加一个rootViewController来处理逻辑,手势识别器就在rootViewController上实现,tabBarController是被包含在rootViewController里的。你到时候要找一个第三方的tabBarController,或者干脆自己写一个(改的时候好改),因为系统的tabBarController不能被内嵌
      

  6.   

    想太复杂了,就在rootView再加两个UIView就好了,通过手势来改变两个view的frame,过程设置耗时0.5秒,简单流畅,动画妥妥的
      

  7.   

    但是两个界面都要推出子视图啊   我是像把tabbar添加在window上   这样可以设计出来吗