我有一个 UIButton,它位于我的屏幕上,但有限制。 (不居中)。我只需要执行一些动画即可在屏幕外启动它,看不见,然后让它滑入。一个按钮从左向右滑动,另一个按钮从右向左滑动。他们还需要能够滑出屏幕。
我试过使用 button.frame.origin.x = 0 - 按钮及其宽度。我认为确实加载了并且它保持在原来的位置。我的计划是保存其原始中心,然后制作动画以滑入我保存的原始中心。好吧,这些都不起作用。
我所有的方法都没有用,所以我把它删除了,我正在找人请从头开始向我展示他们将如何做这件事。任何关于 cgpoints、中心和任何我需要阅读以掌握此技术的相关 Material 也将非常感激。
另外请保持一切 swift 。
谢谢!
最佳答案
我有一个带有 slider 和按钮的“工具板”类。它在逻辑上“附加”到“工具栏”。当您点击栏上的按钮时,面板会动画地“滑出”。
根据您的需求调整我的约束,这就是我要做的。
(1)设置宽度约束为0不显示按钮。
let myButton = UIButton()
let myConstraint = myButton.widthAnchor.constraint(equalToConstant: 0)
myConstraint.isActive = true
(2) 然后,当你想在屏幕上移动它时,重置宽度并使其动画:
myConstraint.constant = 100
UIView.animate(withDuration: 0.3) { self.superview?.layoutIfNeeded() }
当然,您还需要声明其他约束,并且此约束需要具有比这些更宽的范围。例如,如果你想让东西在屏幕外,它的原点可以是 CGPoint.zero 或其他什么,但它的最终位置是你定义的。关键点是 (a) 更改约束,尝试不替换它们,然后 (b) 动画更改。
关于swift - 我需要一个 UIButton 飞入屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43622290/