当FirstTextfield成为FirstRirstResponder时,我想在secondTextField上执行一些动画
在第一个响应者辞职后,动画应该在第二个文本字段中反转。我怎样才能在swift中实现这一目标?
注意:它与将键盘上的文本字段移动到顶部不同。
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if(textField == firstTextField) {
UIView.animateWithDuration(1.0, animations: {
self.secTextField.frame = CGRectMake(self.secTextField.frame.origin.x + 500, self.secTextField.frame.origin.y, self.secTextField.frame.size.width, self.secTextField.frame.size.height) })
}
return true
}
我想要做的是,当用户键入firstTextField时,secTextField应该隐藏在视线之外。 实际发生的事情是secTextField从看不到原来的位置
答案 0 :(得分:1)
您可以使用UITextField的委托方法来实现此目的。如果您解释有关动画的更多信息,我也可以帮助您。
func textFieldDidBeginEditing(textField: UITextField) {
if textField == self.firstTextField {
UIView.animateWithDuration(2, delay: 0, options: nil, animations: { () -> Void in
self.secondTextField.frame = CGRectOffset(self.secondTextField.frame, 500, 0)
}, completion: nil)
}
}
func textFieldShouldReturn(textField: UITextField) -> Bool {
if textField == self.firstTextField {
UIView.animateWithDuration(2, delay: 0, options: nil, animations: { () -> Void in
self.secondTextField.frame = CGRectOffset(self.secondTextField.frame, -500, 0)
}, completion: nil)
}
textField.resignFirstResponder()
return true
}
不要忘记在UITextField对象上设置委托(在viewDidLoad上)
self.firstTextField.delegate = self
self.secondTextField.delegate = self
答案 1 :(得分:0)
我终于找到了答案。 我做了以下步骤。
然后编码:
`self.secTextField.frame.origin.x = self.secTextField.frame.origin.x + 500`
答案 2 :(得分:0)
就我而言,它对我有用。只需使用self.view.layoutIfNeeded()
func textFieldShouldBeginEditing(textField: UITextField) -> Bool {
if(textField == firstTextField) {
UIView.animateWithDuration(1.0, animations: {
self.secTextField.frame = CGRectMake(self.secTextField.frame.origin.x + 500, self.secTextField.frame.origin.y, self.secTextField.frame.size.width, self.secTextField.frame.size.height)
self.view.layoutIfNeeded()
})
}
return true
}