Swift 4 —动画NSLayoutConstraints:简单菜单

Swift 4(iOS)中的动画,我们可以使用多种方法来制作UI元素或过渡的动画。 我们可以使用Transform方法,CGRect,CGPoint甚至约束。 可以将动画代码添加到动画代码内部,该代码通常为UIView.animate(_ :)或UIView.animateKeyframes(_ :)。 由开发人员选择。

视频教程已添加到此处-SwiftDynamics YouTube频道。

在这里,我将向您展示如何使用UI元素的NSLayoutConstraints对象为UI元素设置动画。 NSLayoutConstraints对象可以是任何值,即; 高度,宽度,中心约束,顶部空间,底部空间,尾随或前导空间等。让我们深入研究示例。

我们将使用我在本文中创建的TableView应用程序:快速4的视差效果。

首先,在顶部菜单栏顶部的UIView。 让我们为其添加约束。 高度和宽度可以添加如下,

下一步是为按钮添加顶部空间和结尾空间约束。 将最高约束优先级更改为999

现在为UIView对象添加底部空间,并将其优先级设置为999 。 将值设置为40。

您可能会在情节提要中发现错误,而忽略它。 让我们为ViewController类的顶部和底部约束创建对象引用。

现在,在`scrollView`的`scrollViewDidScroll(_ :)`中添加用于更改菜单按钮底部和顶部约束的代码。

  func scrollViewDidScroll(_ scrollView:UIScrollView){让contentOffset = scrollView.contentOffset.y-oldContentOffset.y如果contentOffset> 0 && scrollView.contentOffset.y> 0 {//向上滚动 
if(menuUpConstraints.isActive){

menuBottomConstraints.isActive = true
menuUpConstraints.isActive =否
animateConstraints()
}} if contentOffset <0 && scrollView.contentOffset.y <0 {//向下滚动if(!menuUpConstraints.isActive){

menuBottomConstraints.isActive =否
menuUpConstraints.isActive = true
animateConstraints()
}
}
} func animateConstraints(){
UIView.animate(withDuration:0.3){
self.view.layoutIfNeeded()
}
}

我在“ animateConstraints()”方法中添加了“ UIView.animate()”。 调用self.view.layoutIfNeeded()将立即更新按钮的布局。

在此处找到完整的代码-github 。 如果您喜欢我的帖子并想获取将来的更新,请单击👏👏👏,在 此处关注我 快乐编码 💪