【发布时间】:2018-06-21 05:57:23
【问题描述】:
当键盘向上移动时,如何用image和label固定UIView的位置?
当键盘显示时,我编写了一个代码来向上移动我的textField,但这会移动所有内容。
func textFieldDidEndEditing(_ textField: UITextField) {
moveTextField(textField: rasstoyanietextField, moveDistance: -215, up: false)
}
func textFieldDidBeginEditing(_ textField: UITextField) {
moveTextField(textField: rasstoyanietextField, moveDistance: -215, up: true)
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
rasstoyanietextField.resignFirstResponder()
return true
}
func moveTextField(textField: UITextField, moveDistance: Int, up: Bool){
let moveDuration = 0.1
let movement: CGFloat = CGFloat(up ? moveDistance : -moveDistance)
UIView.beginAnimations("animateTextField", context: nil)
UIView.setAnimationBeginsFromCurrentState(true)
UIView.setAnimationDuration(moveDuration)
self.view.frame = self.view.frame.offsetBy(dx: 0, dy: movement)
UIView.commitAnimations()
}
我该如何解决?
【问题讨论】:
-
你最好使用通知。检查this
-
1.不要硬编码键盘高度。 2. 你从不使用
moveTextField方法的textField参数。 3.使用块版的UIView动画。这要容易得多。
标签: ios swift uiview keyboard uitextfield