ios - 使用 Swift 动画 View 高度

标签 ios xcode swift autolayout

我的 ViewController 中有 View sView。它的高度有约束 - 我为此约束创建了 IBOutlet - sViewHeightConstraint。我想用动画降低 sView 的高度。

我创建了函数

UIView.animateWithDuration(5.5, animations: {
                self.sViewHeightConstraint.constant = 50
            })

View 的高度正在改变,但我没有看到任何动画。我做错了什么?

最佳答案

使用 layoutIfNeeded()

 view.layoutIfNeeded() // force any pending operations to finish

 UIView.animateWithDuration(0.2, animations: { () -> Void in
    self.sViewHeightConstraint.constant = 50
    self.view.layoutIfNeeded()
})

swift 3

view.layoutIfNeeded() 
sViewHeightConstraint.constant = 50

UIView.animate(withDuration: 1.0, animations: { 
     self.view.layoutIfNeeded() 
})

关于ios - 使用 Swift 动画 View 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36953508/

相关文章:

ios - 将 navigationController 嵌入到 tabBarController 中后,tabBarItem 区域在界面生成器中消失

ios - UIView 应该捕获点击事件但传递移动事件

ios - 如何将 UInt32 转换为 UInt8

iOS Swift : SQLite. swift 错误 - 找不到 header

ios - 相机在启动情绪检测器时卡住

ios - 有没有办法在 for..in 循环中检查 NSArray 中的下一个对象?

iphone - Xcode 4 跳过将应用程序复制到设备/模拟器

xcode - 数据模型更改时如何更新 NSCollectionViewItem?

xcode - 我想从 View Controller 转到 UITabBarController 中的特定选项卡

swift - objc[29733] : Swift class extensions and categories on Swift classes are not allowed to have +load methods xcode 10. 2 在 ios 12.2 上运行