ios - 单击文本字段后 UIView 重新加载?

标签 ios swift cocoa-touch uiview

我正在尝试制作一个非常简单的登录页面。一切都很好,直到我开始制作一些动画。

当我点击登录按钮时,我将 Logo 移到顶部 100 像素,然后显示输入。

它工作正常,但是当我单击文本字段对其进行编辑时,图像( Logo )返回到其原始位置!

我的代码:

  @IBAction func LoginClick(sender: AnyObject) {

    UIView.animateWithDuration(2, animations: {
        var center = self.logoImage.center
        center.y -= 100
        self.logoImage.center = center
        self.usernameInput.hidden=false
        self.passwordInput.hidden=false
        self.usernameLine.hidden=false
        self.passwordLine.hidden=false
        self.slidesImg.hidden=true
    })
}

最佳答案

Auto Layout 正在运行,并将您的 Logo 放回约束规定的位置。不要通过更改中心来修改框架,您应该创建一个 IBOutlet 到垂直空间约束,然后更新 constant 属性以向上移动您的 Logo 。

要创建 IBOutlet,首先单击 Storyboard 中表示垂直约束的垂直条。然后 control-单击约束并拖动到您的 viewController 代码。将其命名为 topSpace


wire up vertical constraint


您需要调用 layoutIfNeeded() 来设置约束变化的动画:

@IBOutlet weak var topSpace: NSLayoutConstraint!

@IBAction func LoginClick(sender: AnyObject) {

    topSpace.constant -= 100
    UIView.animateWithDuration(2, animations: {
        self.logoImage.layoutIfNeeded()
        self.usernameInput.hidden=false
        self.passwordInput.hidden=false
        self.usernameLine.hidden=false
        self.passwordLine.hidden=false
        self.slidesImg.hidden=true
    })
}

关于ios - 单击文本字段后 UIView 重新加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32156828/

相关文章:

ios - 导航自定义 titleView 不再仅在 iOS 11 上可见

ios - 不允许在ios 10 itms-books中出现URL方案问题

ios - 为什么我会收到 UnsafeMutablePointer 错误?

ios - 从使用 Swift 或 Objective C 中的密码短语编码的 RSA 私钥字符串中检索 SecKey

ios - 使用按钮将文本添加到 UITableViewcell 中包含的文本字段值

cocoa-touch - 移动 View 时键盘不会隐藏文本字段

ios - iOS 上的迪杰斯特拉算法

swift - 对于 OSX 应用程序,您如何使用 Swift 中的 NSTask 类获取用户窗口等信息?

ios - TableView NSInternalInconsistencyException

iphone - UISegmentedControl 选定索引始终为 0?