在其他视图动画时关闭键盘

时间:2016-09-15 02:14:36

标签: ios swift animation keyboard

我的项目很简单,只是为了解释我的问题。在视图控制器的视图中,有UILabelM_PI。如果我触摸标签,则标签会旋转class ViewController: UIViewController, UITextFieldDelegate { @IBOutlet weak var textField: UITextField! @IBOutlet weak var label: UILabel! func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { UIView.animate(withDuration: 0.25) { self.label.transform = .identity } return true } @IBAction func labelTapped(_ sender: AnyObject) { textField.resignFirstResponder() UIView.animate(withDuration: 0.25) { self.label.transform = self.label.transform.rotated(by: CGFloat(M_PI)) } } } ,文本字段将退出第一个响应者。如果文本字段未成为第一响应者,则标签将按预期旋转。但是如果文本字段成为第一个响应者并且键盘出现。点击标签时,它会跳转到没有动画的结束变换。

我在Xcode8中编写了该代码,swift 3.0

代码是:

{{1}}

1 个答案:

答案 0 :(得分:0)

在文本字段重新启动其第一个响应者后约0.5秒延迟后尝试执行动画。

func animate() -> Void {
    UIView.animate(withDuration: 0.25) {
        self.label.transform = self.label.transform.rotated(by: CGFloat(M_PI))
    }
}

@IBAction func labelTapped(_ sender: AnyObject) {
    textField.resignFirstResponder()
    NSTimer.scheduledTimerWithTimeInterval(0.5, target: self, selector: #selector(ViewController.animate), userInfo: nil, repeats: false)
}