出于某些奇怪的原因,当设置了scrollofset时,我的UITextView的文本会被裁剪。

看起来是这样的:

这样做是在发生以下情况:

        textview.contentInset = UIEdgeInsetsZero;
        [textview setContentOffset:CGPointMake(0, startypos + offset_yshift) animated:NO];

我尝试手动设置contentSize.height,但是这引入了另一个奇怪的行为,即似乎忽略了内容偏移量。

“编辑”:这是用于实例化文本字段的代码:
  CGRect myImageRect = CGRectMake(-50.0f, -50.0f, 40.0f, 40.0f);
  textview = [[UITextView alloc] initWithFrame: myImageRect];
  textview.autocapitalizationType = UITextAutocapitalizationTypeNone;
  [textview setScrollEnabled:YES];
  textview.hidden = YES;
  textview.contentInset = UIEdgeInsetsZero;
  textview.opaque = NO;
  textview.backgroundColor = [UIColor clearColor];
  textview.textColor = [UIColor colorWithWhite:1 alpha:1];
  textview.textAlignment = NSTextAlignmentCenter;
  textview.frame = CGRectMake(0, 0, 250, 30);
  textview.scrollEnabled = NO;

还有“更新”代码,用于检查每帧内容的位置:
  // setting the actual size here
  UITextPosition * pos = [textview positionFromPosition: textview.endOfDocument offset:nil];
  CGRect therect = [textview caretRectForPosition:pos];

  CGRect frame = textview.frame;

  if([textview.text length] == 0){
     frame.size.height = 30;
  } else {
     frame.size.height = therect.origin.y + therect.size.height;
  }

  // and here, we're changing the frame variable's height to max to 50
  if(frame.size.height > 50){
     frame.size.height = 50;
  }
  frame.size.width = desiredwidth; // some other variable

  textview.frame = frame;

  /*

     ... snip, unrelated code ...

  */

  // later on

        textview.contentInset = UIEdgeInsetsZero;
        [textview setContentOffset:CGPointMake(0, startypos + offset_yshift) animated:NO];

可以想象,setContentOffset位是导致问题的原因。

到底是怎么回事?

最佳答案

请尝试从上一篇文章

CGPoint offset = CGPointMake(0, self.textView.contentSize.height - self.textView.frame.size.height);
[self.textView setContentOffset: CGPointMake(0,0) animated:NO];
or
[self.textView setContentOffset:bottomOffset animated:YES];

[发布]:UITextView contentOffset on iOS 7“上一篇”\

关于uiscrollview - UITextView,setContentOffset和缺少的底部,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19005434/

10-12 00:18
查看更多