Ios UITextField在UIView中不工作。SWIFT中的AnimateEduation
这是使用SWIFT的iPad应用程序。它有两种观点。 1.启动视图 2.登录视图 这两个视图位于同一个ViewController中。 启动视图将是第一个视图。通过单击第一个视图中的“下一步”按钮,开始视图将使用动画教育移到左侧,同时,登录视图将从右侧出现。如果我们单击用户名/密码字段(任何文本字段),它将导航到上一个视图 同时, 若登录视图将是第一个屏幕,则表示文本字段正在工作,键盘正在出现。 但在动画教学中,我不会打字。请帮帮我。我正在使用XCODE 6.1 代码(来自注释):Ios UITextField在UIView中不工作。SWIFT中的AnimateEduation,ios,swift,xcode6,Ios,Swift,Xcode6,这是使用SWIFT的iPad应用程序。它有两种观点。 1.启动视图 2.登录视图 这两个视图位于同一个ViewController中。 启动视图将是第一个视图。通过单击第一个视图中的“下一步”按钮,开始视图将使用动画教育移到左侧,同时,登录视图将从右侧出现。如果我们单击用户名/密码字段(任何文本字段),它将导航到上一个视图 同时, 若登录视图将是第一个屏幕,则表示文本字段正在工作,键盘正在出现。 但在动画教学中,我不会打字。请帮帮我。我正在使用XCODE 6.1 代码(来自注释): @IBAct
@IBAction func getStart_button(sender: UIButton) {
UIView.animateWithDuration(0.7, delay: 0.25, options: .CurveEaseOut, animations: {
self.clt_login_vw.frame = CGRectMake(450, 56, 574, 660)
}, completion:nil)
}
通常,在使用自动布局时,不要直接更改帧。 移动视图的最佳方法是使用CGAffineTransform
let move = CGAffineTransformMakeTranslation(translation_X , translation_Y)
在动画闭包中:
self.clt_login_vw.transform = move
然后,要将其返回,只需在动画闭包内执行以下操作:
self.clt_login_vw.transform = CGAffineTransformIdentity
简历:
let moveOut = CGAffineTransformMakeTranslation(translation_X , translation_Y)
@IBAction func getStart_button(sender: UIButton) {
UIView.animateWithDuration(0.7, delay: 0.25, options: .CurveEaseOut, animations: {
[weak self] // Remember no not create cycles
self!.clt_login_vw.transform = moveOut
}, completion:nil)
}
编辑:
我要加上诺亚·威瑟斯彭的选择。
另一种方法是获取保持视图水平的约束,一旦获得该约束,就可以更改其常量并在闭包内调用layoutIfNeeded():
@IBAction func getStart_button(sender: UIButton) {
constraint.constant = newConstant // enough to make it off the screen
UIView.animateWithDuration(0.7, delay: 0.25, options: .CurveEaseOut, animations: {
[weak self] // Remember no not create cycles
self!.view.layoutIfNeeded()
}, completion:nil)
}
为了获得特定的约束,我更喜欢制作IBOutlets,所以我可以很容易地在代码中获得它的引用
如果不是通过代码实现的,请执行此操作。禁用ViewController上的自动布局后重试。您可以在界面生成器上轻松禁用。也可以显示代码。@iAction func getStart_按钮(发件人:UIButton){UIView.animateWithDuration(0.7,延迟:0.25,选项:.CurveEaseOut,动画:{self.clt_login_vw.frame=CGRectMake(450,56,574,660)},完成:nil)}如果没有自动布局,它工作正常。但如果我需要添加约束意味着,我怎么能@bpolathi@bpolat!任何想法??设置变换也是一种错误的方法-要使用基于约束的布局设置视图动画,您应该更改约束的属性。我不会说这是错误的,但有一个选项,无论如何,您是对的,即设置约束的动画不断更改将是最好的!我的问题。若控制器处于自动布局,则当我们加载视图时,Textfield正在工作。但是,如果我们使用动画持续时间移动视图,此时TextField不起作用。如果单击该字段,将自动导航到上一个视图。。如果控制器不在自动布局中,则在加载视图时以及在动画教学中,Textfield都在工作。嘿,正如我们所说的,问题很可能是您移动视图的方式。为了避免自动布局问题,请不要直接移动帧,而是更改自动布局常量,或者使用转换来移动视图,正如我在上面所解释的。