2015-10-16 41 views
1

这是我的问题: 我有第一个需要完成的表单,一旦完成,您可以访问第二个表单,它是一个从左侧滑动到我的视图的UIView。点击TextField重置视图位置

当我点击第二个窗体的其中一个文本字段时,视图的位置被重新设置,并且我再次查看第一个窗体。

这里是我的滑代码:

@IBAction func Postulate(sender: AnyObject) { 
    UIView .animateWithDuration(0.5, animations: {() -> Void in 
     self.formView.frame = CGRectMake(0, 64, 414, 736) 
    }) 
} 

如何攻上一个文本框重置有何看法?我该如何反击呢?

我试着用持续时间为0来重新​​浏览视图,当一个文本框被点击但它不工作。

回答

0

那么,最后我发现了一个黑客绕过这个。 我开始在0(在视图)和隐藏状态设置为true我的第二个窗体视图的位置。然后,我让它向左滑动出屏幕(被隐藏)这样的:

formView.hidden = true; 
    UIView .animateWithDuration(0, animations: {() -> Void in 
     self.formView.frame = CGRectMake(-425, 64, 414, 736) 
    }) 

当按钮去我的表单视图按我把我的表格视图中隐藏状态为假,我一定能滑动向右移动以便用户可以看到它。 当我点击该字段时,位置重置,但因为窗体视图位置是在视图中创建的,所以它不会改变。

最后,当我从窗体视图中单击我的“返回”按钮时,我将它滑回左侧并将其隐藏状态设置为true。以此类推,当用户想要改变第一种形式的任何东西时,位置被重置,但隐藏状态允许用户看到他想要看到的形式而不是另一个。

希望我帮了某人。 这只是一个SWIFT HACK,这项工作,但它可能不是最好的解决方案,如果你有更好的解决方案,给它,这样我就可以接受你的答案。

1

将VC设置为textField委托,然后使用委托方法textFieldBeganEditing或类似的东西来识别用户点击文本字段。

class ClassName:UIViewController, UITextFieldDelegate { 
    @IBOutlet week var textField: UITextField! { 
     didSet { textField.delegate = self } 
    } 
    func textFieldDidBeginEditing(textField: UITextField){ 
     //user tapped on the textField, do what you wanna do here 
    } 
} 
+0

代码中可能有一些拼写错误,我在这里写了 – Lukas

+0

我试了一下,谢谢你的回答。 –

+0

不适用于我:/,它没有改变任何东西 –