我在视图中有一些内容(例如图像,标签),最后一项是描述(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);
}
结果如下:
如您所见,有很多空白空间。我需要滚动到文本的末尾。
答案 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);
现在它运作正常!