【问题标题】:tap on TextField reseting the view position点击 TextField 重置视图位置
【发布时间】:2015-10-16 10:28:10
【问题描述】:

这是我的问题: 我有第一个表单需要完成,完成后您可以访问第二个表单,它是一个从左侧滑到我的视图的 UIView。

当我点击第二个表单的一个文本字段时,视图的位置被重置,我再次看到第一个表单。

这是我的滑动代码:

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

点击文本字段如何重置视图?我该如何应对呢?

我尝试在点击文本字段时以 0 的持续时间重新滑动视图,但它不起作用。

【问题讨论】:

    标签: ios iphone swift uiview textfield


    【解决方案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
        }
    }
    

    【讨论】:

    • 代码可能有错别字,我就写在这里
    【解决方案2】:

    好吧,我终于找到了绕过这个的方法。 我将第二个表单视图的位置从 0(在视图上)开始,并将隐藏状态设置为 true。然后我让它像这样滑到屏幕左侧(被隐藏):

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

    当按下进入表单视图的按钮时,我将表单视图隐藏状态设置为 false,并将其向右滑动,以便用户看到它。 当我点击该字段时,位置会重置,但因为表单视图位置是在视图中创建的,所以它不会改变。

    最后,当我从表单视图中单击“返回”按钮时,我将其滑回左侧并将其隐藏状态设为真。以此类推,当用户想要更改第一个表单上的任何内容时,位置会被重置,但隐藏状态允许用户看到他想看到的表单,而不是另一个。

    希望我帮助了某人。 这只是一个 SWIFT HACK,这项工作,但它可能不是最好的解决方案,如果您有更好的解决方案,请提供,以便我接受您的回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多