ios - 使用自动布局约束 swift 2.1 从中心到顶部为 UIView 设置动画

标签 ios animation swift2 xcode7

我想在单击按钮时为 UITextField 从中心到 View 顶部设置动画。 TextField 有以下限制

enter image description here

以下是点击按钮将文本文件移动到顶部的代码。

 UIView.animateWithDuration(0.5) {
   self.txtfield.center.y = 10
  }

上面的代码有效,textfiled 移动到顶部但是当我返回并再次来到这个 View 时,textfield 再次位于中心。我是 swift 的新手,我希望一旦将文本字段移至顶部,它就应该保持在顶部。

最佳答案

您应该在代码中获得对约束的引用。然后改为更改约束的常量值。

我已经在 viewDidLoad 中添加了将文本字段移动到顶部的代码,但您当然会在按钮操作中包含此代码。您必须从“Align Center Y”拖动到 View Controller 中才能创建对约束的引用。我减去 10 的原因是因为您的示例和意图是与顶部有 10 个点的余量。请注意,我像这样“颠倒”了第一项和第二项:

enter image description here

请记住,当您使用自动布局时,框架和中心以及 View 边界的大小由自动布局约束设置。

class ViewController: UIViewController {

    @IBOutlet weak var textFieldYAlignConstraint: NSLayoutConstraint!
    @IBOutlet weak var textField: UITextField!

    override func viewDidLoad() {
        super.viewDidLoad()

         UIView.animateWithDuration(1.2) { () -> Void in
        self.centeraligntConstraint.constant = -400
        self.view.layoutIfNeeded()// to animate layout constraint
    }

    }
}

enter image description here

关于ios - 使用自动布局约束 swift 2.1 从中心到顶部为 UIView 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531491/

相关文章:

ios - 核心数据锁因为合并?

ios - 防止垂直 UIStackView 拉伸(stretch) subview ?

css - 如何通过 CSS 覆盖在重复无限动画之间添加延迟

iphone - 用动画翻页(UIWebView)

android - 在自定义 View 中为 Drawable 设置动画

ios - 如何更改 "back"栏按钮项的标题?

ios - 绘制/渲染网格 iOS 的最佳方式 - 生命游戏

ios - 尝试呈现 View Controller 警告

swift 关闭模态并推送到新的 VC

ios - 多种类型的 segue 仍然无法移动 View Controller