Xcode Swipe Gesture不会改变约束常量

时间:2017-07-27 12:57:23

标签: ios xcode constraints

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
    }
}

1 个答案:

答案 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()
}
}