当内容大小动态变化时,我将如何设置scrollview
的内容大小。我已将所有内容添加到名为“contentView”的UIView
,然后尝试调用setcontentsize
(如下所示),但这不会导致滚动。动态内容的滚动视图setcontentsize
sudo'ish代码:
[scrollView setContentSize: contentView.frame.size];
也许 “内容查看” 不是伸展它的大小以适合其子?
任何帮助,将不胜感激。
当内容大小动态变化时,我将如何设置scrollview
的内容大小。我已将所有内容添加到名为“contentView”的UIView
,然后尝试调用setcontentsize
(如下所示),但这不会导致滚动。动态内容的滚动视图setcontentsize
sudo'ish代码:
[scrollView setContentSize: contentView.frame.size];
也许 “内容查看” 不是伸展它的大小以适合其子?
任何帮助,将不胜感激。
UIView
或UIScrollView
将不会基于内容自动拉伸。您必须手动计算框架并将其相应地放置在滚动视图中,然后将滚动视图的contentSize
设置为可容纳所有子视图的最大可能大小。
当你添加东西到你的contentView调用[contentView sizeToFit]
,然后内容视图将拉伸以适应其子视图,然后,你发布的代码将工作。
这取决于您要动态添加的内容类型。假设您有大量的文本数据要显示,然后使用UITextView
,并且由于它是UIScrollView
的子类,所以在分配文本内容时,可以获取TextView的setContentSize。基于此,您可以设置UIScrollView
的总大小。
float yPoint = 0.0f;
UIScrollView *myScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0.0f, yPoint, 320.0f, 400.0f)];
UITextView *calculatorTextView = [[UITextView alloc] init];
calculatorTextView.text = @"My looong content text ..... this has a dynamic content";
[calculatorTextView sizeToFit];
yPoint = yPoint + calculatorTextView.contentSize.height; // Bingo, we have the new yPoiny now to start the next component.
//现在你知道你的文字和地点将结束的高度。所以你可以创建一个标签或其他TextView并在那里显示你的文本。您可以将这些组件作为子视图添加到滚动视图中。
UITextView *myDisplayContent = [[UITextView alloc] initWithFrame:CGRectMake(0.0f, yPoint, 300.f, calculatorTextView.contentSize.height)];
myDisplayContent.text = @"My lengthy text ....";
[myScrollView addSubview:myDisplayContent];
//最后,设定“myScrollView”的内容的大小的显示区域的总长度。
[myScrollView setContentSize:yPoint + heightOfLastComponent];
这适用于我。