gpt4 book ai didi

ios - UILabel 向左或向右移动 Swift

转载 作者:搜寻专家 更新时间:2023-11-01 06:13:22 25 4
gpt4 key购买 nike

我已经通过自动布局和约束设置了 2 个文本。现在我想将文本 1 向右移动,将文本 2 向左移动,但它不起作用。两个文本都应该在 View 的中心结束(水平)

@IBOutlet weak var Text1: UILabel!
@IBOutlet weak var Text2: UILabel!

override func viewDidLoad() {
super.viewDidLoad()
UIView.animate(withDuration: 5, delay: 0, options: [.beginFromCurrentState],
animations: {
self.Text1.frame.origin.x += 300
self.Text2.frame.origin.x -= 300
self.view.layoutIfNeeded()
}, completion: nil)
// Do any additional setup after loading the view.
}

我在代码中做错了什么吗?

最佳答案

您可以使用 CGAffineTransform(translationX: y:) 来实现类似的目的:

UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseInOut, animations: {
self.breathingStatusLabel.transform = CGAffineTransform(translationX: self.breathingStatusLabel.bounds.origin.x + 300, y: self.breathingStatusLabel.bounds.origin.y)
}, completion: nil)

要将它移回原来的位置,请将其添加到另一个动画 block 中:

self.breathingStatusLabel.transform = .identity

注意:CGAffineTransform(translationX: y:) 将 View 转换到提供的位置,但不会更改其框架。所以在使用它时要小心,只要动画标签就可以使用它。

但是例如你想在键盘出现时移动 UITextFields,如果它的 autolayout 或者改变它的框架,你应该改变约束。如果你使用 CGAffineTransform(translationX: y:) 你会注意到它会移动 UITextField 但是当你点击它时没有任何效果因为它的框架没有改变,只是位置变了。

关于ios - UILabel 向左或向右移动 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50407578/

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