我的应用程序中具有自动滚动功能。激活后,我的代码将禁用textView滚动并使用CADisplayLink更改contentOffset。

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

当进一步发现时,我发现在禁用textView滚动后一段时间contentSize被更改。看起来像是某种优化。但这并没有考虑contentOffset

重现此错误:

  • 确保textView中的文本足够大,至少两页。
  • 在ViewController中,将_textView.scrollEnabled = NO;放入-viewDidLoad
  • 在ViewController中添加:
    - (void)viewDidAppear:(BOOL)animated {
        [super viewDidAppear:animated];
        [_textView setContentOffset:CGPointMake(0, 400) animated:YES];
    }
    

  • 问题是:如何在UITextView设置为scrollEnabled的情况下自动滚动iOS7中的NO

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

    最佳答案

    如果scrollEnabled为NO时,文本在底部被裁剪:

    self.textContainerInset = UIEdgeInsetsMake(0.0f, 0.0f, -20.0f, 0.0f);
    

    07-26 09:42