滚动到UITextView文本的末尾

时间:2016-03-12 18:44:28

标签: ios objective-c uiscrollview uitextview

我在视图中有一些内容(例如图像,标签),最后一项是描述(UITextView)。现在我尝试根据UITextView文本动态滚动内容。这是我的代码:

- (void)viewDidAppear:(BOOL)animated {

    _descriptions.scrollEnabled = NO;
    [_descriptions sizeToFit];

    _infoScrollView.contentSize = CGSizeMake(_contentsOnInfoView.frame.size.width,
                                             _contentsOnInfoView.frame.size.height + _descriptions.frame.size.height);
}

结果如下:

如您所见,有很多空白空间。我需要滚动到文本的末尾。

4 个答案:

答案 0 :(得分:6)

我建议你试一试。

[('5930', 'B', '4')]
[('3127', 'C', '4')]

答案 1 :(得分:2)

您应该在

中写下代码
-(void) viewDidLayoutSubviews {}

在此方法中,所有组件都根据运行设备大小而具有框架。并在出现之前执行。

答案 2 :(得分:0)

//may be it will work for you
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
    //set the line break mode
    paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;

    NSDictionary *attrDict = [NSDictionary dictionaryWithObjectsAndKeys: description.font,
                              NSFontAttributeName,
                              paragraphStyle,
                              NSParagraphStyleAttributeName,
                              nil];


    CGRect rect = [description.text boundingRectWithSize:CGSizeMake(description.size.width, FLT_MAX)
                                                  options:NSStringDrawingUsesLineFragmentOrigin
                                               attributes:attrDict
                                                  context:nil];
    CGSize size = rect.size;
   _infoScrollView.contentSize = CGSizeMake(_contentsOnInfoView.frame.size.width,description.frame.origin.y + size.height + 20)

答案 3 :(得分:-2)

我刚刚找到答案,在UI中有一行将描述与一些信息分开!我只计算了y行,并总结了height的描述:

_descriptions.scrollEnabled = NO;
[_descriptions sizeToFit];
_infoScrollView.contentSize = CGSizeMake(_infoView.frame.size.width, _line.frame.origin.y + _descriptions.bounds.size.height);

现在它运作正常!