资讯专栏INFORMATION COLUMN

iOS动画编程-AutoLayout动画[ 2 ]Inspecting and animating

ad6623 / 2481人阅读

摘要:介绍通过可视化方法,使用来控制约束,实现动画确实非常方便也非常容易,但是有时你不可能把上所有元素都做,这会有巨大的工程量。也许你希望通过代码来增减调整约束由于这些原因,你将需要在运行时检查已存在的约束,并且用代码让它们动起来。

介绍

通过可视化方法,使用outlets来控制约束,实现动画确实非常方便也非常容易,但是有时你不可能把UI上所有元素都做outlet,这会有巨大的工程量。也许你希望通过代码来增减、调整约束
由于这些原因,你将需要在运行时检查已存在的约束,并且用代码让它们动起来。

Demo

接着我们上一个Demo,在actionToggleMenu()方法中添加

for con in titleLabel.superview!.constraints { print(" -> (con.description)
")
}

通过这么一段代码,我们遍历了menu bar view的所有约束并输出在了命令行

这样的输出显然很混乱,那我们看出哪个我们要做调整的约束呢
比如我们如下的约束:
UIView:...centerX == UILabel:..."Select Item".centerX
这显然是UIView UILabel之间的约束、它的description也包括了label的current text
centerX让我们判断出来,这个约束与horizontally centers有关,这样就能知道这个约束是做什么的了

Animating UILabel constraints

随后在actionToggleMenu(_:)方法中,判断开关状态后,添加如下代码:

    for constraint in titleLabel.superview!.constraints {
        if constraint.firstItem as? NSObject == titleLabel &&
        constraint.firstAttribute == .CenterX {
            constraint.constant = isMenuOpen ? -100.0 : 0.0
            continue
        }
    }

这样我们便找到了我们要修改的约束并且改变了它的值

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15945.html

相关文章

  • iOS动画编程-AutoLayout动画[ 1 ]Animating Constraints

    摘要:简介自动布局功能随着的发布横空出世,现在已经成为了机型适配最佳的解决方案之一。由于自动布局的特点,对于使用自动布局功能的视图,我们不能再像之前一样去操作它的等属性,我们通过对布局约束的操作来代替之前的方法来实现动画。 简介 AutoLayout自动布局功能随着iOS6的发布横空出世,现在已经成为了iOS机型适配最佳的解决方案之一。由于自动布局的特点,对于使用自动布局功能的视图,我们不能...

    sihai 评论0 收藏0
  • iOS动画编程-AutoLayout动画[ 5 ] Animating dynamically cr

    摘要:前段时间考试,没有来得及写文,最近会抽时间把部分写完介绍这一节中,我们将利用本节所学的内容,创建一个新的,添加约束并显示出来函数将在我们点击的时候显示出来一个新的,实现如下效果在方法中加入如下代码来创建一个新的在上面的代码中,我们加载了一张 前段时间考试,没有来得及写文,最近会抽时间把Animation部分写完 介绍 这一节中,我们将利用本节所学的内容,创建一个新的View,添加约束并...

    Rocko 评论0 收藏0
  • iOS动画编程-AutoLayout动画[ 3 ] Animating by replacing c

    介绍 之前的几节中,我们都是通过修改一个约束的值来实现动画的。但是如果你想做的更多,你可能需要删除旧的约束并添加新的约束 删除约束 在IB中,我们可以为每一个约束注册一个identifiershowImg(https://segmentfault.com/img/bVqExV);showImg(https://segmentfault.com/img/bVqExY);showImg(https:/...

    miya 评论0 收藏0
  • iOS中的转场研究(1)

    摘要:在中,可以通过多种方式设定转场效果。若想详细了解的用法,可以读一读苹果的文档。以后,苹果引进了新的。这些的使用方式,苹果没有给出一个官方的,但是在网上,已经有很多和教程讲解如何使用这些,比如这篇文章。 场景转换是iOS开发中最基本的需求。为了让自己的App更加的酷炫,我们往往需要定制一些转场效果。在iOS中,可以通过多种方式设定转场效果。这里简单列表如下: Modal prese...

    qc1iu 评论0 收藏0
  • Coder Essential之客户端知识索引(iOS/Android/Web)

    摘要:本文主要面向笔者在等移动端开发中的经验总结出在现有以及未来的所有客户端的学习中应该掌握的知识脉络图。它表示的是一种常见的客户端软件开发框架。部分放在这边是因为它是一套从开始到后面响应中的完整的机制,以中的中的以及中的为典型代表。 [TOC] 本文主要面向笔者在Web、iOS、Android、WP等移动端开发中的经验总结出在现有以及未来的所有客户端的学习中应该掌握的知识脉络图。通俗来说,...

    AlienZHOU 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<