调整uiscrollview contentSize的大小,无法应用新值

时间:2012-01-03 11:37:08

标签: ios uiscrollview

我正在尝试在运行时调整滚动视图内容的大小。我可以这样做,如果我自己设置值,但当我尝试使用最后一个对象进行计算后分配新值,它不起作用3!我猜它是因为我没有正确设置我的int。任何帮助总是受到赞赏的人

这有效:

 [scroller setContentSize: CGSizeMake(scroller.frame.size.width ,scroller.frame.size.height*2)];

不工作:

int newHeight=textViewRect.origin.y+textViewRect.size.height+5;
     [scroller setContentSize: CGSizeMake(scroller.frame.size.width ,newHeight)];

编辑:

 CGRect textViewRect=textView.frame;
textViewRect=CGRectMake(textViewRect.origin.x, textViewRect.origin.y, textViewRect.size.width, textViewRect.size.height);

可能是这样的:

newHeight值是否错误与我在viewDidLoad方法中得到的事实有什么关系?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

在线上放置一个断点

int newHeight=textViewRect.origin.y+textViewRect.size.height+5;

找到newHeight的值。如果该值小于scroller的高度,则无法滚动。

答案 1 :(得分:0)

我所做的是子类uiwebview将其用作textView。将数据传递给我的子类后,我将其加载到Web视图中,一旦加载i,然后将其框架调整为webViewDidFinishLoading方法中的内容大小。

因此在文本视图添加到视图之前有几毫秒的延迟,这意味着我得到的值是0.为了解决这个问题,我在我的子类中添加了一个委托方法来通知我它已经完成加载。一旦完成加载,我就相应地调整contentSize的大小。