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 。 如果您喜欢我的帖子并想获取将来的更新,请单击👏👏👏,在中 和 此处关注我。 快乐编码 💪
- 将自定义游戏逻辑添加到Scene Kit(Swift)
- 如何用新的Apple Swift语言发布JSON
- MBCalendar工具包框架如何在我的项目中添加
- OpenCV imencode PGM不编码正确的格式
- 使用“自动布局”弹出键盘时,如何调整视图大小
- 如何使用AVURLAssetstream式传输video并将caching的数据保存到磁盘
- 生成失败,错误命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc
- UIWebView显示UIActivityIndicator进行加载,但在页面初始加载后忽略其他加载请求(例如JavaScript加载的广告)
- 我如何检查移动数据或无线networking打开或closures。 ios迅速