Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITextField在UIView中不工作。SWIFT中的AnimateEduation_Ios_Swift_Xcode6 - Fatal编程技术网

Ios UITextField在UIView中不工作。SWIFT中的AnimateEduation

Ios UITextField在UIView中不工作。SWIFT中的AnimateEduation,ios,swift,xcode6,Ios,Swift,Xcode6,这是使用SWIFT的iPad应用程序。它有两种观点。 1.启动视图 2.登录视图 这两个视图位于同一个ViewController中。 启动视图将是第一个视图。通过单击第一个视图中的“下一步”按钮,开始视图将使用动画教育移到左侧,同时,登录视图将从右侧出现。如果我们单击用户名/密码字段(任何文本字段),它将导航到上一个视图 同时, 若登录视图将是第一个屏幕,则表示文本字段正在工作,键盘正在出现。 但在动画教学中,我不会打字。请帮帮我。我正在使用XCODE 6.1 代码(来自注释): @IBAct

这是使用SWIFT的iPad应用程序。它有两种观点。 1.启动视图 2.登录视图 这两个视图位于同一个ViewController中。 启动视图将是第一个视图。通过单击第一个视图中的“下一步”按钮,开始视图将使用动画教育移到左侧,同时,登录视图将从右侧出现。如果我们单击用户名/密码字段(任何文本字段),它将导航到上一个视图

同时,

若登录视图将是第一个屏幕,则表示文本字段正在工作,键盘正在出现。 但在动画教学中,我不会打字。请帮帮我。我正在使用XCODE 6.1

代码(来自注释):

@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都在工作。嘿,正如我们所说的,问题很可能是您移动视图的方式。为了避免自动布局问题,请不要直接移动帧,而是更改自动布局常量,或者使用转换来移动视图,正如我在上面所解释的。