使用Swift为OS X应用程序设置动画视图移动

时间:2016-06-29 23:12:54

标签: xcode swift macos animation

我有两个滚动视图,其中一个具有使其占据完整父视图的约束,而另一个在其旁边,但隐藏在父视图的边界之外。我想动画两个向左滑动,直到第二个滚动视图占据完整的父视图,第一个滚动视图现在超出左边界限。如何使用Swift为OS X应用程序执行此操作?

1 个答案:

答案 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
})

这将为左侧框架中的第一个滚动视图设置动画,并将第二个滚动视图移动到其以前的位置。