// 一般的我们添加一个视图到父视图都是通过
/*
let v1 = UIView(frame:CGRectMake(100,200,30,50)) self.view.addSubview(v1) // self.view 代表控制器的view
*/
这种方式添加的视图是,越后面添加,越在最上层 我们还有这几种方法:
1.0 insertSubview(view: UIView , atIndex index: Int )
// 将试图view 置于子视图数组的下标为 index 的位置 2.0 insertSubview(view : UIView , belowSubview siblingSubview : UIView)
// 将试图view 置于 siblingSubview 视图的下面 3.0 insertSubview(view: UIVIew ,aboveSubview siblingSubview : UIView)
// 将试图view 置于 siblingSubview 视图的上面 //2.0 子视图的层次的改变方法 1.0 bringSubviewToFront(view : UIView)
// 将 view移动到所有子视图的最上面 2.0 sendSubviewToBack(view : UIView)
// 将view移动到所有子视图的最下面 3.0 exchangeSubviewAtIndex(index1 : Int , witheSubviewAtIndex index2: Int)
// 将下标 为 index1 的子视图和下标为 index2 的子视图交换位置 // 3.0 UIView 的基本动画 我们可以改变视图的属性包括: 1.0 位置(x 和 y) 2.0 大小(width 和
height) 3.0 颜色(纯色)4.0 透明度
1.0 /**
* 只有一个持续时间 和 动画的最终状态
* UIView.animateWithDuration(<#T##duration: NSTimeInterval##NSTimeInterval#>, animations: <#T##() -> Void#>)
*/ 2.0 /**
* duration: 执行动画的时间
animations: 动画的最终状态
第三个参数: 动画执行结束后,紧接着需要做的一系列动作 UIView.animateWithDuration(<#T##duration: NSTimeInterval##NSTimeInterval#>, animations: <#T##() -> Void#>, completion: <#T##((Bool) -> Void)?##((Bool) -> Void)?##(Bool) -> Void#>)
*/ 3.0 UIView.animateWithDuration(<#T##duration: NSTimeInterval##NSTimeInterval#>, delay: <#T##NSTimeInterval#>, options: <#T##UIViewAnimationOptions#>, animations: <#T##() -> Void#>, completion: <#T##((Bool) -> Void)?##((Bool) -> Void)?##(Bool) -> Void#>) duration: 整个动画持续时间,该值越大,动画进行得越慢
delay : 延迟,即在等待dealy 秒后开始动画
options : 相关的动画运行参数
常规动画属性设置(可以同时选择多个进行设置) UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动。 UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互。 UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行。 UIViewAnimationOptionRepeat:重复运行动画。 UIViewAnimationOptionAutoreverse :动画运行到结束点后仍然以动画方式回到初始点。 UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套动画时间设置。 UIViewAnimationOptionOverrideInheritedCurve:忽略嵌套动画速度设置。 UIViewAnimationOptionAllowAnimatedContent:动画过程中重绘视图(注意仅仅适用于转场动画)。 UIViewAnimationOptionShowHideTransitionViews:视图切换时直接隐藏旧视图、显示新视图,而不是将旧视图从父视图移除(仅仅适用于转场动画)
UIViewAnimationOptionOverrideInheritedOptions :不继承父动画设置或动画类型。 .动画速度控制(可从其中选择一个设置) UIViewAnimationOptionCurveEaseInOut:动画先缓慢,然后逐渐加速。 UIViewAnimationOptionCurveEaseIn :动画逐渐变慢。 UIViewAnimationOptionCurveEaseOut:动画逐渐加速。 UIViewAnimationOptionCurveLinear :动画匀速执行,默认值。 .转场类型(仅适用于转场动画设置,可以从中选择一个进行设置,基本动画、关键帧动画不需要设置) UIViewAnimationOptionTransitionNone:没有转场动画效果。 UIViewAnimationOptionTransitionFlipFromLeft :从左侧翻转效果。 UIViewAnimationOptionTransitionFlipFromRight:从右侧翻转效果。 UIViewAnimationOptionTransitionCurlUp:向后翻页的动画过渡效果。 UIViewAnimationOptionTransitionCurlDown :向前翻页的动画过渡效果。 UIViewAnimationOptionTransitionCrossDissolve:旧视图溶解消失显示下一个新视图的效果。 UIViewAnimationOptionTransitionFlipFromTop :从上方翻转效果。 UIViewAnimationOptionTransitionFlipFromBottom:从底部翻转效果。 animations: 这是一个闭包,在这个闭包体内,所有的参数都是动画的最终状态 completion: 这也是一个闭包,表示在整个动画发生完成后会执行这个动画 当然,这些方法是可以嵌套使用的

swift视图的添加及层次变动和基本动画的更多相关文章

  1. 如何在BCGControlBar界面库的CBCGPFormView子视图里面添加工具栏

    最近有一个项目需求,需要在子视图里面添加一个新工具栏用来处理当前视图对应模块的操作.之前在对话框模式下做过添加工具栏的实现,在CBCGPFormView中添加工具栏还是头一次.在这里记录一下,给自己留 ...

  2. Android自定义视图一:扩展现有的视图,添加新的XML属性

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...

  3. django class类即视图类添加装饰器的几种方法

    根据别人发布整理,个人爱好收集(原文:https://blog.csdn.net/mydistance/article/details/83958655 ) 第一种:定义函数装饰器,在函数,类中使用函 ...

  4. Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法(mvc部分视图的添加)

    Partial 和RenderPartial:这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传值有点不一样Partial 回传的一个Object (MvcHtmlString), 回 ...

  5. swift为UIView添加extension扩展frame

    添加swift file:UIView+Extension import UIKit extension UIView { // x var x : CGFloat { get { return fr ...

  6. 自定义视图一:扩展现有的视图,添加新的XML属性

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! 简介 这个系列详细的介绍了如何穿件Android自定义视图.主要涉及的内容有如何绘制内容,layout和measure的原理,如何继承 ...

  7. Tabbar视图切换,返回上一视图,添加item

    前面有一篇博文iOS学习之Tab Bar的使用和视图切换 这是在AppDelegate里使用Tabbar,这样的程序打开就是TabbarView了,有时候我们需要给程序做一些帮助页面,或者登录页面,之 ...

  8. Swift - 给图片添加滤镜效果(棕褐色老照片滤镜,黑白滤镜)

    Core Image是一个强大的滤镜处理框架.它除了可以直接给图片添加各种内置滤镜,还能精确地修改鲜艳程度, 色泽, 曝光等,下面通过两个样例演示如何给UIImage添加滤镜. 1,棕褐色滤镜  -  ...

  9. Swift - 给图片添加图片水印(图片上绘制另一张图,并可设透明度)

    我前面写了篇文章讲解如何给图片添加文字水印,而如果想要添加图片类型的水印也很简单,只要把原来代码里添加文字的部分改成图片即可. 1,效果图如下: (在图片左上角添加了一个半透明的logo图片) 2,为 ...

随机推荐

  1. 关于New,delete

    new delete 为表达式.这个过程不能重载,但是分解的步骤可以重载. String* ps = newe String("Hello") 分解为: String* ps; v ...

  2. SOLR缓存调优

    缓存在 Solr 中充当了一个非常重要的角色,Solr 中主要有这三种缓存: Filter cache(过滤器缓存),用于保存过滤器(fq 参数)和层面搜索的结果 Document cache(文档缓 ...

  3. Web Service进阶

    选框架犹如选媳妇,选来选去,最后我还是选了“丑媳妇(CXF)”,为什么是它?因为 CXF 是 Apache 旗下的一款非常优秀的 WS 开源框架,具备轻量级的特性,而且能无缝整合到 Spring 中. ...

  4. orika core工具对实体(Bean)进行深度拷贝

    1. 在pom.xml中添加orika core依赖: <!-- https://mvnrepository.com/artifact/ma.glasnost.orika/orika-core ...

  5. 性能测试day02_后端网络协议架构

    接着第一天的尾,继续来学习性能测试,上一次说到性能要大致经历哪些阶段,那么我们也来看下行业的做法: 行业有两种做法,一个是TPC,另一个是SPEC: TPC:指定业务类型,获得该指定业务的性能指标,也 ...

  6. linux中使用pip命令遇到的一些问题

    一 安装readline包之后python3.6导入模块异常退出 Type "help", "copyright", "credits" o ...

  7. java se 随机数。生成

    public class test { public static void main(String[] args) { getRandomNum1(); getRandomNum2(); getRa ...

  8. Mysql 多字段去重

    使用group by去重现在有如下表 id name age1 张三 232 李四 343 张三 234 李四 32 需求 : 按照name和age字段联合去重 sql如下 select * from ...

  9. python中的expandtabs、\t

    expandtabs()将tab转换成空格,默认1个tab转成8个空格,\t制表符代表一个tab,我们也可以自定义转换成几个空格 举个例子: 1 a = "hello\tworld" ...

  10. yarn 日志查看

    1.  yarn 日志列表 yarn application -list 2. impala-shell impala-shell -q 'invalidate metadata' ## impala ...