添加内容时,UIScrollView会随机滚动

时间:2011-07-22 07:26:47

标签: iphone cocoa-touch ipad

我有一个视图,其中一些UITextViews被添加到UIScrollView。当视图出现时,所有数据都正确加载到scrollView,但我还有一个tableView,您可以在其中为项目选择不同的税。在该tableView上选择一个项目后,将清除scrollView并使用新项目再次安装。它使用正确的数据填充scrollView,但一旦填充,它会随机滚动到滚动视图的任何位置,而不是滚动而没有动画到顶部。 我已经检查了我的代码,在安装了scrollView之后我使用了:

[self.scrollPreciosTarifasGUI scrollRectToVisible:CGRectZero animated:NO];

我也尝试过使用:

[self.scrollPreciosTarifasGUI scrollRectToVisible:CGRectMake(0,0,1,1) animated:NO];

但我的结果相同。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

我在随机滚动和UITextViews方面遇到了类似的问题。我真的没有找到任何解决办法,但只是偶然我将一个滚动视图放到另一个滚动视图中它起作用了!

这是我的代码:

//newDetailViewController.view is uiscrollview type
[self.mainScrollView addSubview:newDetailViewController.view];
[newDetailViewController.view setFrame:CGRectMake(-2, 40, 800, 3300)];

答案 1 :(得分:1)

http://opensourcehacker.com/2010/08/30/uiscrollview-setcontentoffset-random-scrolling-on-ios-4/发布的解决方案对我来说非常有用。

  

//需要在iOS 4上执行此操作或视图滚动到随机位置   [scrollView setContentSize:CGSizeMake(0,0)];

     

//使用新内容更新视图   [self updateContent:...]

     

//我们希望视图在每次显示时都位于顶部   [scrollView setContentOffset:CGPointMake(0,0)animated:NO];

     

//并设置正确的大小以启用滚动。   //设置子视图的内容时会更新contentHeight。   [scrollView setContentSize:CGSizeMake(self.view.frame.size.width,contentheight)];

答案 2 :(得分:0)

尝试这只是一个疯狂的猜测

[self.scrollPreciosTarifasGUI scrollRectToVisible:CGRectMake(0,
                                                             0,
                                                             self.scrollPreciosTarifasGUI.frame.size.width,
                                                             self.scrollPreciosTarifasGUI.frame.size.height)
                              animated:NO];