3

我的应用程序中有自动滚动功能。当它被激活时,我的代码会禁用 textView 滚动并使用CADisplayLink.

在早期版本的 iOS 中工作正常,但在第 7 个文本中出现裁剪。

虽然进一步发现,但我发现contentSize在禁用 textView 滚动后的一段时间内发生了更改。看起来像是某种优化。但是不contentOffset考虑。

要重现此错误:

  1. 确保 textView 中的文本足够大,至少有两页大小。
  2. 在 ViewController 中_textView.scrollEnabled = NO;放入-viewDidLoad
  3. 在 ViewController 中添加:

    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        [_textView setContentOffset:CGPointMake(0, 400) animated:YES];
    }
    

问题是:设置为时如何UITextView在 iOS7中自动滚动?scrollEnabledNO

禁用滚动以停止可能UITextView的插入符号位置更改的内置自动滚动并禁止用户与控件交互。

4

2 回答 2

4

如果您的文本在底部被裁剪,而 scrollEnabled 为 NO:

self.textContainerInset = UIEdgeInsetsMake(0.0f, 0.0f, -20.0f, 0.0f);
于 2013-09-27T19:00:43.757 回答
1

不能完全解决问题,但作为一种解决方法,您可以允许启用滚动,但将 UserInteractionEnabled 设置为 NO。

[_textView setScrollEnabled:YES];
[_textView setUserInteractionEnabled:NO];
于 2013-09-20T17:37:13.833 回答