当前位置:编程学习 > wap >>

UIView中视图关系分析以及视图跳转动画的使用

现学习IOS开发,在看别人代码时看到别人使用UIView中的exchangeSubviewAtIndex方法进行了视图跳转。花了点时间仔细学习了一下UIView中的视图关系,可能对于很多人来说已经算是小儿科,但是希望能帮助到用到的人,下面把我学到的东西分享给大家。
 
 exchangeSubviewAtIndex:withSubviewAtIndex: 首先必须的先看看官方文档,
 
Exchanges the subviews at the specified indices.结合着方法调用时需要传递
 
的参数可以这样很准确的翻译,在指定一个子view集合中,交换两个子view。
 
再看一下UIView的声明,NSArray *subviews;这样就不难理解了,对于UIView
 
就像一个大容器,里面可以承载很多东西,你可以通过addSubview方法向UIView
 
中添加子View(子View也可以是UIView),当然可以覆盖(后添加上来的视图盖
 
在先添加的视图上面),而大容器UIView对象就会把你添加进来的子view统一存放
 
在subviews里面进行管理,而子view也具有自己的索引index,IOS中索引也是从0
 
开始,第一个添加进来的view是index = 0;以后按照顺序逐渐增加。这样一想,对
 
于IOS开发中的视图关系一下子就清楚了。这样再去看
 
exchangeSubviewAtIndex:withSubviewAtIndex方法就变得好理解多了。
 
 
 
 那么很多人使用exchangeSubviewAtIndex:withSubviewAtIndex方法是进
 
行视图跳转的,其实从上面分析的结果来看也很是简单了,在一个UIView
 
中添加视图1、视图2、视图3,当前显示的是视图3,向要跳转到视图1,
 
只需要调用方法,把视图1的索引和视图3的索引传入到方法中就可以完
 
成视图的跳转了。
 
 
 
有人会问了,子view的索引怎么得到,我在浏览帖子的时候发现有人说得
 
不到,易做图,子view都是统一在subviews里面管理的怎么可能得不到呢。
 
得到的方法很简单,subviews是NSArray对象,NSArray对象里有个方法
 
indexOfObject,把你想要得到索引的子view对象传过去就可以得到这个
 
view的索引了。子view视图怎么得到,定义成全局是一种方法,也可以
 
通过tag得到视图(UIView中的一个方法 viewWithTag,这个方法类似于
 
Android中的findViewByI'd),当然事先你得为子view设置tag了。
 
 
exchangeSubviewAtIndex:withSubviewAtIndex方法是完成视图跳转的没错
 
,其实大部分是完成那么有动画效果的视图跳转,就像以前学习Android时
 
对于IOS上的立体翻转动画效果很是崇拜,在IOS上很简单,废话不多说了。
 
上代码:
 
 
 
    [UIViewbeginAnimations:@"animationID"context:nil];//开始一个动画块,第一个参数为动画块标识
    
    [UIViewsetAnimationDuration:1.5f];//设置动画的持续时间
    //设置动画块中的动画属性变化的曲线,此方法必须在beginAnimations方法和commitAnimations,默认即为UIViewAnimationCurveEaseInOut效果。详细请参见UIViewAnimationCurve
    [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];
    
    [UIViewsetAnimationRepeatAutoreverses:NO];//设置是否自动反转当前的动画效果
 
 
 
    //设置过渡的动画     效果,此处第一个参数可使用5种动画效果
    [UIViewsetAnimationTransition:UIViewAnimationTransitionFlipFromLeftforView:self.viewcache:YES];
 
 
 
//设置完成后启动跳转方法
    [self.viewexchangeSubviewAtIndex:1withSubviewAtIndex:2];
 
 
    [UIViewcommitAnimations];//提交动画
 
补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,