动画 UITextField

Posted

技术标签:

【中文标题】动画 UITextField【英文标题】:Animate UITextField 【发布时间】:2015-01-04 17:47:00 【问题描述】:

我需要这样做,以便当我单击按钮时,UITextFieldview 外部向左转换到view。但是,当我执行以下代码时,UITextField 从视图控制器的中间开始,然后当单击按钮时,它从view 外部向左转换到view。我怎样才能做到这一点,以便在最初加载视图时,使用 swift 在单击按钮之前看不到它。

@IBAction func joinCircleButton(sender: AnyObject) 
    let button = sender as UIButton
    joinTextField.frame.origin.x=500
    joinTextField.frame.origin.y=100
    if (button.frame.origin.x - 75>0)
        UIView.animateWithDuration(0.5, animations:
            button.frame = CGRectMake(button.frame.origin.x - 125, button.frame.origin.y,button.frame.size.width, button.frame.size.height)
            button.transform = CGAffineTransformMakeScale(0.5, 0.5);
            self.joinTextField.frame=CGRectMake(self.joinTextField.frame.origin.x - 325, self.joinTextField.frame.origin.y,self.joinTextField.frame.size.width, self.joinTextField.frame.size.height)
        )
    

【问题讨论】:

【参考方案1】:

您需要使用以下函数将 UITextField 或您希望隐藏的任何对象放在视图之外:

func viewDidLayoutSubviews()

在加载屏幕之前调用此函数。它准备好子视图,但尚未在屏幕上显示它们。所以这是一个隐藏 UITextField 的机会,如下所示:

 func viewDidLayoutSubviews()

 // Here is just an EXAMPLE of what I'd do with my text field, you can change this however you wish
 // The point is that I am putting it away so no one can see it at first, and then later it will show
 joinTextField.center = CGPointMake(joinTextField.frame.origin.x-500, joinTextField.frame.origin.y)


现在应该在视图加载时隐藏文本字段,然后可以在以后设置动画。我希望这会有所帮助。

【讨论】:

它有效,谢谢。但是由于某种原因,每当我单击文本字段或任何其他对象时,所有动画对象都会回到动画之前的原始位置。我怎样才能阻止这种行为。 您能否再描述一下。告诉我从头到尾的行为。 1) 我单击按钮 2) 按钮向左移动,同时变小 3) 单击按钮时文本字段进入视图 4) 一切都已完成动画 5) 我单击textfield 6)按钮回到原来的位置,但仍然是小尺寸,并且文本字段从视图中消失 我以前的动画也遇到过这种情况。我无法解释这种现象,我相信它与“viewdidlayoutsubviews”有关。每当我制作动画时,我都不使用按钮动作来执行它们,但尽管如此。您可以做的是使用布尔值并首先将其设置为 false。在“viewdidlayoutsubviews”中放置“if else”语句,如果布尔值为 false,则执行动画,否则不执行任何操作。现在在您的按钮操作中将布尔值设置为 True,也许这可以防止这些动画问题。否则,我们可以私聊,我可以好好看看。 我相信“viewdidlayoutsubviews”会再次被调用,或者其他什么。我不确定,但我遇到过事情变小或者动画一遍又一遍地运行的情况。

以上是关于动画 UITextField的主要内容,如果未能解决你的问题,请参考以下文章

Android动画之视图动画和属性动画

Android动画(帧动画补间动画属性动画)讲解

JQuery--基础动画滑动动画淡入淡出动画自定义动画

iOS中动画组、过渡动画

android动画笔记

Android 动画 属性动画 视图动画 补间动画 帧动画 详解 使用