0

UITextView当用户输入每一行时,如何以编程方式滚动我的。

我的 textView 是必需的,因为键盘会在某些时候隐藏它,如下所示。 在此处输入图像描述

我搜索了很多,但没有找到任何合适的解决方案,因为我是 iPhone 开发的新手。我需要你的宝贵帮助。

4

3 回答 3

4

当你打开键盘时,你应该调整你的文本视图的框架。在这种情况下,将框架的高度降低键盘的高度。

为这两个委托方法实现正确的代码。

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
{
    CGRect frm = textView.frame;
    frm.height -= KEY_BOARD_HEIGHT;
    textView.frame = frm;
}
- (BOOL)textViewShouldEndEditing:(UITextView *)textView;
{
    CGRect frm = textView.frame;
    frm.height += KEY_BOARD_HEIGHT;
    textView.frame = frm;
}
于 2013-03-19T10:05:59.473 回答
1

为滚动位置取一个变量::int scrollY;

文本视图代码::

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if ([text isEqualToString:@"\n"])
    {
        scrollY += 10;
        scrMain.contentOffset = CGPointMake(0, scrollY);
    }
    return YES;
}

然后,当用户从键盘退出时,将其再次设置为 0 并滚动到其原点位置。

scrollY = 0;
scrMain.contentOffset = CGPointMake(0, 0);

希望,它可以帮助你。

谢谢。

于 2013-03-19T10:29:47.337 回答
0

UITextView输入文本时自动滚动文本,您只需将UITextView框架更改为键盘上方,并且当您关闭键盘重置UITextView框架时

- (void)textViewDidBeginEditing:(UITextView *)textView
{
   //set frame for text view here
}
- (void)textViewDidEndEditing:(UITextView *)textView
{
  //set frame for text view here
}
于 2013-03-19T10:14:27.583 回答