我有一个包含滚动视图,容器视图和3个子视图(topview,textview和bottomview)的视图。请参阅下面的视图层次结构。 textview的高度是根据其内容定义的。我为它的高度定义了一个动态约束,我在viewDidLayoutSubviews中更改了它。 textview的大小是正确的,但问题是我的scrollview不滚动。我做错了什么?也许我需要添加/修改一些其他约束?
-(void)viewDidLayoutSubviews
{
NSAttributedString * string = [[NSAttributedString alloc] initWithString:self.game.description];
CGFloat heightTV = [self textViewHeightForAttributedText:string andWidth:260];
self.dynamicTVHeight.constant = heightTV;
[self.view layoutIfNeeded];
}
- (CGFloat)textViewHeightForAttributedText:(NSAttributedString *)text andWidth:(CGFloat)width
{
UITextView *textView = [[UITextView alloc] init];
[textView setAttributedText:text];
CGSize size = [textView sizeThatFits:CGSizeMake(width, FLT_MAX)];
return size.height;
}
答案 0 :(得分:1)
UIScrollView仅在contentSize大于bounds时才滚动。可以通过计算子视图的帧(从约束计算)或在代码中手动(通常在viewDidLoad中)自动设置UIScrollView的内容大小。 仔细检查您的UIScrollView的contentSize。