Xcode中的滑动手势识别器存在问题。我想让代码执行的操作如下:向上滑动时,浮动按钮的视图会消失。向下滑动时,浮动按钮会再次出现。但当然,它不起作用:D
我可以在StoryBoard中手动更改视图的位置,而不会破坏约束。
一切都正确连接。
它也没有给出错误信息,只是不起作用。
我该怎么办?
我使用以下代码:
import UIKit
class HomeViewController: UIViewController {
@IBOutlet weak var BottomFloatersBottomLayoutGuide: NSLayoutConstraint!
@IBAction func UpSwipe(_ sender: UISwipeGestureRecognizer) {
BottomFloatersBottomLayoutGuide.constant = -400
}
@IBAction func DownSwipe(_ sender: UISwipeGestureRecognizer) {
BottomFloatersBottomLayoutGuide.constant = 0
}
}
答案 0 :(得分:0)
你必须把它放在这个功能中:
UIView.animate(withDuration: 1.0){
//your code here
}
该块中的所有内容都将动画化:更改颜色,视图框架等等。所以你的约束也是如此。
编辑:Woops,我错了。在UIView.animate中,需要调用self.view.layoutIfNeeded()。约束的更改应该在该块之外。 layoutIfNeeded()更新约束。
您的代码应如下所示:
@IBAction func UpSwipe(_ sender: UISwipeGestureRecognizer) {
BottomFloatersBottomLayoutGuide.constant = -400
UIView.animate(withDuration: 1.0){
self.view.layoutIfNeeded()
}
}