2

存在键盘时如何使 UITextField 向上移动?- 我已经尝试了这里提出的所有方法,但是我的滚动视图没有根据键盘向上移动。我想在 iPad 笔记中实现移动,因为文本接近键盘,文档向上移动。

4

2 回答 2

9

这是我的做法。不要忘记在 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;
}
于 2012-11-05T15:33:31.267 回答
-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
    }
于 2017-02-09T09:52:34.480 回答