Swift 通过按按钮更改约束
在应用程序运行时,是否有方法通过按下按钮将视图的centerXAnchor约束更改为另一个对象(带有动画)Swift 通过按按钮更改约束,swift,uikit,Swift,Uikit,在应用程序运行时,是否有方法通过按下按钮将视图的centerXAnchor约束更改为另一个对象(带有动画) 谢谢所有的答案 首先,您需要从故事板为您的约束创建一个IBOutlet,类似于此 @IBOutlet weak var centerXConstraint: NSLayoutConstraint! 当按下按钮时,应更改约束值并更新视图布局 centerXConstraint.constant = setYourValueHere UIView.animate(withDuration:
谢谢所有的答案 首先,您需要从故事板为您的约束创建一个
IBOutlet
,类似于此
@IBOutlet weak var centerXConstraint: NSLayoutConstraint!
当按下按钮时,应更改约束值并更新视图布局
centerXConstraint.constant = setYourValueHere
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
})
如果要以编程方式添加约束,请删除@IBOutlet-weak
var centerXConstraint: NSLayoutConstraint!
将视图的中心X定位指定给它
centerXConstraint = yourView.centerXAnchor.constraint(equalTo: super.view.centerXAnchor, constant: 0)
centerXConstraint.isActive = true
之后,您可以如上所述对其进行更改。首先,您需要从故事板为您的约束创建一个
IBOutlet
,类似于此
@IBOutlet weak var centerXConstraint: NSLayoutConstraint!
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var centerXConstraintOutlet: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func buttonClickAction(_ sender: UIButton) {
animateViewCenterXConstraint()
}
func animateViewCenterXConstraint() {
UIView.animate(withDuration: 0.3) {
self.centerXConstraintOutlet.constant = 30
self.view.layoutIfNeeded()
}
}
}
当按下按钮时,应更改约束值并更新视图布局
centerXConstraint.constant = setYourValueHere
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
})
如果要以编程方式添加约束,请删除@IBOutlet-weak
var centerXConstraint: NSLayoutConstraint!
将视图的中心X定位指定给它
centerXConstraint = yourView.centerXAnchor.constraint(equalTo: super.view.centerXAnchor, constant: 0)
centerXConstraint.isActive = true
然后,可以如上所述对其进行更改。1)创建与这两个对象相关的视图的centerXAnchor约束
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var centerXConstraintOutlet: NSLayoutConstraint!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func buttonClickAction(_ sender: UIButton) {
animateViewCenterXConstraint()
}
func animateViewCenterXConstraint() {
UIView.animate(withDuration: 0.3) {
self.centerXConstraintOutlet.constant = 30
self.view.layoutIfNeeded()
}
}
}
2) 以这两个约束为例
3) 按需单击按钮即可激活和取消激活它们。1)创建与这两个对象相关的视图的centerXAnchor约束
2) 以这两个约束为例
3) 按需单击按钮即可激活和取消激活它们。为centerXAnchor约束声明变量,并为按钮操作赋值。您可以尝试以下方法:
var constraintOfCenterXAnchor: NSLayoutConstraint = NSLayoutConstraint()
在
viewDidLoad()
setconstraintOfCenterXAnchor.constant=0
按下按钮后,更改约束值并更新视图
constraintOfCenterXAnchor.constant = 30
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
})
为centerXAnchor约束声明变量并为按钮操作赋值。您可以尝试以下方法:
var constraintOfCenterXAnchor: NSLayoutConstraint = NSLayoutConstraint()
在
viewDidLoad()
setconstraintOfCenterXAnchor.constant=0
按下按钮后,更改约束值并更新视图
constraintOfCenterXAnchor.constant = 30
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
})
以视图的IBMOutlet的centerXAnchor为例,然后更改为您的CenterXanchoroOutlet.constant=someValue yourView.LayoutFneedd()以视图的IBMOutlet的CenterXanchoroOutlet.constant=someValue yourView.LayoutFneedd()为例,以编程方式执行此操作?我在哪里“连接”centerXConstraint?@VViktor您是否在使用故事板设置约束?不,我是以编程方式进行的。真的很抱歉我应该在问题中提到它。没问题,这几乎是一样的,您正在这样做以添加约束
yourView.centerXAnchor.constraint(equalTo:super.view.centerXAnchor,常量:0)。isActive=true
,对吗?谢谢,我将更新答案,并将包括以编程方式创建的约束。我将如何以编程方式进行?我在哪里“连接”centerXConstraint?@VViktor您是否在使用故事板设置约束?不,我是以编程方式进行的。真的很抱歉我应该在问题中提到它。没问题,这几乎是一样的,您正在这样做以添加约束yourView.centerXAnchor.constraint(equalTo:super.view.centerXAnchor,常量:0)。isActive=true
,对吗?谢谢,我将更新答案,并将包括以编程方式创建的约束。相同的问题:如何以编程方式“连接”centerXConstraintOutlet?您可以查看本文相同的问题:如何“连接”centerXConstraintOutlet以编程方式?您可以查看这篇文章,我如何将constraintOfCenterXAnchor分配给UIView?constraintOfCenterXAnchor=yourView.centerXAnchor.constraint(等式:self.view.centerXAnchor)
和ConstraintoCenterXanchor.isActive=true
如何将ConstraintoCenterXanchor分配给UIView?ConstraintoCenterXanchor=yourView.centerXAnchor.constraint(equalTo:self.view.centerXAnchor)
和ConstraintoCenterXanchor.isActive=true