gpt4 book ai didi

ios - 更改 NSLayoutConstraint 时的 SWIFT 动画

转载 作者:行者123 更新时间:2023-11-28 08:52:22 25 4
gpt4 key购买 nike

这是我的代码:

func scrollViewDidScroll(scrollView: UIScrollView) {
if mapHeight.constant < 400 {
mapHeight.constant = 400
tableOfRestaraunts.reloadData()
}
}

func normalSize() {
if mapHeight.constant == 400 {
mapHeight.constant = 200
}
}

当用户滚动 UITableView 时,我的 map 变小,当他触摸任何地方时,它变成默认大小。

我想添加一些动画(这样看起来更流畅)。我已经尝试了一些来自网络的解决方案,但它们没有帮助。有什么建议吗?

最佳答案

与往常一样,您应该调用 layoutIfNeeded 来为布局约束中的更改设置动画。在您的情况下,您应该在包含约束的 View 上调用它(这对我来说不是很明显)。或者在实际动画 block 中使用简单的 self.view.layoutIfNeeded():

该示例为您制作动画,动画需要 0.5 秒才能完成。您可以使用 UIView 的动画 block 的重载来更好地控制动画的细节。

    func scrollViewDidScroll(scrollView: UIScrollView) {
if mapHeight.constant < 400 {
UIView.animateWithDuration(0.5) { () -> Void in
mapHeight.constant = 400
self.view.layoutIfNeeded()

}
tableOfRestaraunts.reloadData()
}
}

func normalSize() {
if mapHeight.constant == 400 {
UIView.animateWithDuration(0.5) { () -> Void in

mapHeight.constant = 200
self.view.layoutIfNeeded()
}
}
}

更新:我不知道你没有动画 block 。已更新以包含实际的动画 block 。

关于ios - 更改 NSLayoutConstraint 时的 SWIFT 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33870773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com