【问题标题】:How to move UIScrollView automatically to make UITextfield visible based on keyboard?如何自动移动 UIScrollView 以使 UITextfield 基于键盘可见?
【发布时间】:2012-10-25 11:16:00
【问题描述】:

How to make a UITextField move up when keyboard is present? - 我已经尝试了这里提出的所有方法,但是我的滚动视图没有根据键盘向上移动。我想在 iPad 笔记中实现移动,因为文本接近键盘,文档向上移动。

【问题讨论】:

    标签: iphone ipad ios5 uiscrollview


    【解决方案1】:

    这里是swift 3.0版本

    func scrollViewAdapt(toStartEditing textField: UITextField) {
            let point = CGPoint(x: CGFloat(0), y: CGFloat(textField.frame.origin.y - 1.7 * textField.frame.size.height))
            scrollView.setContentOffset(point, animated: true)
        }
    
        func scrollVievEditingFinished(_ textField: UITextField) {
            let point = CGPoint(x: CGFloat(0), y: CGFloat(0))
            scrollView.setContentOffset(point, animated: true)
        }
    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
    
            self.scrollViewAdapt(toStartEditing: textField)
            return true
        }
    
        func textFieldShouldReturn(_ textField: UITextField) -> Bool {
            textField.resignFirstResponder()
            self.scrollVievEditingFinished(textField)
            return true
        }
    

    【讨论】:

    • 提供更多使用信息。
    【解决方案2】:

    这是我的做法。不要忘记在 UITextField 上设置委托

    - (void) scrollViewAdaptToStartEditingTextField:(UITextField*)textField
    {
        CGPoint point = CGPointMake(0, textField.frame.origin.y - 1.5 * textField.frame.size.height);
        [scrollView setContentOffset:point animated:YES];
    }
    
    - (void) scrollVievEditingFinished:(UITextField*)textField
    {
        CGPoint point = CGPointMake(0, 0);
        [scrollView setContentOffset:point animated:YES];
    }
    
    - (BOOL) textFieldShouldBeginEditing:(UITextField *)textField
    {
        [self scrollViewAdaptToStartEditingTextField:textField];
        return YES;
    }
    
    - (BOOL) textFieldShouldReturn:(UITextField *)textField
    {
        [textField resignFirstResponder];
        [self scrollVievEditingFinished:textField];
        return YES;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 2016-05-23
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2018-06-11
      • 2017-03-25
      相关资源
      最近更新 更多