【发布时间】:2017-12-28 20:24:49
【问题描述】:
我想为视图设置动画以从左侧滑入和滑出。
到目前为止我做了什么:
当用户点击左上角的图标时,会触发一个动作(显示/隐藏菜单视图)。
“菜单视图”包括深色蒙版视图、半透明白色视图和所有三个视图(标签+图像)。
现在这个菜单视图将滑入和滑出。
我尝试在菜单视图中添加一个约束:
func viewDidLoad() {
super.viewDidLoad()
menuView.translatesAutoresizingMaskIntoConstraints = false
menuViewLeftConstraint = NSLayoutConstraint(item: menuView, attribute: .left, relatedBy: .equal, toItem: view, attribute: .left, multiplier: 1, constant: -1000)
menuViewLeftConstraint.isActive = true
}
我在用户每次点击时切换常量(-1000 或 0)。
但动画看起来不像我想象的那样。
【问题讨论】:
-
您想要动画约束的变化,我认为您已经在尝试。作为“滑动”左锚的替代方法,您可以增加宽度。我的滑出是这样做的:(OUT)取消隐藏所有控件并将宽度常数增加到所需的宽度。 (IN) 隐藏所有控件并将宽度设置为 0。
-
@dfd 嗯,听起来不错,你能举个例子吗?顺便说一句,你知道为什么动画左约束对我不起作用吗?
-
没有看到我可以说的其他限制。 @J.Doe 的回答可能是最好的方法,但前提是您知道要移动 centerX 多少。
-
好吧,我只是将 centerX 约束每次移动 1000:centerX.constant += 1000。
-
这行得通,至少在 Apple 发布“桌子”iPad 之前!,12.9 英寸 iPad Pro 的纵向宽度为 1024,高度为 1366。(答案提供了一个“未来”的好方法证明”你的代码。)