我有一个使用UIScrollView显示Interface Builder创建的内容的应用程序。我以编程方式添加UITextView,因为它的内容是可更改的,我希望它可以调整大小。这个完成了!调整UIScrollView的大小以适应新的UITextView大小时出现问题。我无法完成它..我尝试了各种方法,包括:
CGRect contentRect = CGRectZero; for (UIView *view in self.scrollView.subviews)
contentRect = CGRectUnion(contentRect, view.frame);
self.scrollView.contentSize = contentRect.size;
我认为问题是因为它是由Interface Builder构建的,但UIScrollView也包含其他元素,因此我无法以编程方式创建它。我希望有人能帮助我。
UPDATE 1 :我从界面构建器中将UIView和UIScrollView的高度设置为1024.
更新2(FIX):
我能够通过在viewDidLoad
方法的末尾发出一个计时器来解决这个问题,如下所示:
[NSTimer scheduledTimerWithTimeInterval:0.00001 target:self selector:@selector(resizeScrollView) userInfo:nil repeats:NO]
然后在resizeScrollView
方法中调整大小:
-(void)resizeScrollView {
CGFloat scrollViewHeight = 0.0f;
for (UIView* view in scrollView.subviews)
{
scrollViewHeight += view.frame.size.height;
}
[scrollView setContentSize:(CGSizeMake(320, scrollViewHeight-50))];
}
感谢您的帮助!
注意:此解决方案的灵感来自Maniac One的答案。谢谢!
答案 0 :(得分:1)
scrollView.contentsize=textview.size
答案 1 :(得分:0)
变化 scrollview.contentSize 根据'viewDidScroll'委托
中的程序要求