我有两个滚动视图,其中一个具有使其占据完整父视图的约束,而另一个在其旁边,但隐藏在父视图的边界之外。我想动画两个向左滑动,直到第二个滚动视图占据完整的父视图,第一个滚动视图现在超出左边界限。如何使用Swift为OS X应用程序执行此操作?
答案 0 :(得分:5)
用一点点狩猎和拼凑的东西来计算这个。
为要在动画中更改的约束创建IBOutlet。在这种情况下,请为每个滚动视图使用前导约束。
@IBOutlet weak var ScrollView1LeadingConstraint: NSLayoutConstraint!
@IBOutlet weak var ScrollView2LeadingConstraint: NSLayoutConstraint!
然后,使用以下内容:
NSAnimationContext.runAnimationGroup({ (context) -> Void in
context.duration = //length of the animation time in seconds
self. ScrollView1LeadingConstraint.animator().constant = //negative width of scroll view
self.ScrollView2LeadingConstraint.animator().constant = 0
}, completionHandler: { () -> Void in
//insert any completion code here
})
这将为左侧框架中的第一个滚动视图设置动画,并将第二个滚动视图移动到其以前的位置。