文档章节

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

hejunbinlan
 hejunbinlan
发布于 2016/08/01 13:35
字数 347
阅读 1
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

介绍

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

Demo

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

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

通过这么一段代码,我们遍历了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
        }
    }

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

hejunbinlan
粉丝 41
博文 595
码字总数 21569
作品 0
浦东
高级程序员
私信 提问
加载中
请先登录后再评论。
NSSplitView 扩展--DMSplitView

DMSplitView 对标准的 OS X 的 NSSplitView 控件进行改造,可满足更复杂的要求: 子视图的大小和约束 分隔条位置 可收缩伸展的子视图 动画变换效果 可控制分隔条的粗细和样式 可保存和恢复分...

匿名
2013/01/24
368
0
iOS 应用版本更新检查--Harpy

实现 app 版本检查功能。用户打开app之后,进行app的版本更新检查。如果检查到 appstore 上有当前qpp的新版本,则弹出对话框提醒用户下载。可以设置让用户选择下载或者强制用户下载。 [Code4...

匿名
2013/02/18
1.8K
0
跨平台手机应用开发--Gideros

Gideros 可以让你轻松快速创建 iOS 和 Android 应用,提供用户友好的集成开发环境,内建模拟器对应用进行不同屏幕大小、分辨率下的测试,最大的优点是可即时修改代码即时进行测试,无需编译安...

匿名
2013/02/19
2.8K
1
RESwitch

RESwitch 是 UISwitch 的开源替代品,可使用 UIAppearance 协议进行定制。 要求: Xcode 4.5 or higher Apple LLVM compiler iOS 5.0 or higher ARC...

匿名
2013/02/19
587
0
Flash 皮肤样式--Windows8UIStyle

Windows8UIStyle 模仿 Windows 8 的桌面用户界面,使得 FlashSwing 应用程序在 Windows 8 系统中拥有与传统应用程序一致的用户界面。 Windows8UIStyle 对 FlashSwing 默认主题的修改: 提供和...

Gregary
2013/02/19
1.3K
1

没有更多内容

加载失败,请刷新页面

加载更多

C#中const和readonly有什么区别? - What is the difference between const and readonly in C#?

问题: What is the difference between const and readonly in C#? C#中const和readonly什么区别? When would you use one over the other? 您什么时候可以使用另一个? 解决方案: 参考一...

fyin1314
31分钟前
25
0
百度地图SDK新版内测邀请

本文作者:用****9 百度地图开放平台为开发者提供七大基础服务能力,其中地图SDK和导航SDK是开发者广泛使用的重要基础服务,为了满足开发者更多使用需求以及提升开发者集成后的应用效果,本次...

百度开发者中心
前天
13
0
获取JavaScript数组中的所有唯一值(删除重复项) - Get all unique values in a JavaScript array (remove duplicates)

问题: I have an array of numbers that I need to make sure are unique. 我需要确定一个唯一的数字数组。 I found the code snippet below on the internet and it works great until th......

javail
今天
11
0
如何检查字符串是否为空? - How to check if the string is empty?

问题: Does Python have something like an empty string variable where you can do: Python是否有类似空字符串变量的内容可以在其中执行: if myString == string.empty: Regardless, wh......

富含淀粉
今天
19
0
您如何存储未跟踪的文件? - How do you stash an untracked file?

问题: I have changes to a file, plus a new file, and would like to use git stash to put them away while I switch to another task. 我对一个文件进行了更改,再加上一个新文件,并希......

技术盛宴
今天
39
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部