单击文本字段后 UIView 重新加载?
UIView reloaded after clicking a textfield?
我正在尝试制作一个非常简单的登录页面。一切都很好,直到我开始做一些动画。
当我点击登录按钮时,我将徽标移到顶部 100 像素,然后显示输入。
工作正常,但是当我单击文本字段对其进行编辑时,图像(徽标)returns 回到了原来的位置!
我的代码:
@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
})
}
自动布局 运行 并将您的徽标放回到约束规定的位置。不要通过更改中心来修改框架,您应该创建一个 IBOutlet
到垂直 space 约束,然后更新 constant
属性 以向上移动您的徽标。
要创建 IBOutlet
,首先单击 Storyboard 中表示垂直约束的垂直条。然后 control-单击约束并拖动到您的 viewController 代码。给它起一个像 topSpace
.
这样的名字
您需要调用 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
})
}
我正在尝试制作一个非常简单的登录页面。一切都很好,直到我开始做一些动画。
当我点击登录按钮时,我将徽标移到顶部 100 像素,然后显示输入。
工作正常,但是当我单击文本字段对其进行编辑时,图像(徽标)returns 回到了原来的位置!
我的代码:
@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
})
}
自动布局 运行 并将您的徽标放回到约束规定的位置。不要通过更改中心来修改框架,您应该创建一个 IBOutlet
到垂直 space 约束,然后更新 constant
属性 以向上移动您的徽标。
要创建 IBOutlet
,首先单击 Storyboard 中表示垂直约束的垂直条。然后 control-单击约束并拖动到您的 viewController 代码。给它起一个像 topSpace
.
您需要调用 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
})
}