2013-02-02 39 views
0

我正在努力为UIScrollView问题寻找解决方案,我知道在这个论坛上有很多讨论,但我找不到任何合适的解决方案。UIScrollView如何自动包装内容?

我的问题是我只在我的scrollview中有从数据库加载的标签和图像。所以我不知道标签有多长。我的scrollview的高度为615(在界面生成器中),如果我用此高度初始化此scrollview,它将不会滚动。

所以我的问题是我怎么知道我的身高是什么后,我已经从我的数据库中加载文本?如果这对高度有影响,我还有一个导航栏和一个标签栏在这个ViewController

我的视图控制器的结构是这样的: - NavigationController - 视图控制器 - 查看 - 滚动型 - Label1的 - Label2的 - 标签...

+0

设置contentSize和ScramllView的FramSize programmetically – iPatel

回答

1

你需要采取以下小步骤:

  • 设置你的滚动视图大小不超过然后屏幕的大小(即(320,480),直到iPhone 4和(320,568)为iPhone5的),如:

    CGSize screenSize = [[UIScreen mainScreen] bounds].size; 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, screenSize.width, screenSize.height)]; 
    
  • 现在设置你的scrollView

    [scrollView setContentSize:CGSizeMake(320, heightOfAllSubViews + heightOfVerticalSpaces)]; 
    

    这里heightOfAllSubViews内容大小为所有的标签和ImageView的累积高度,heightOfVerticalSpaces是子视图之间的所有垂直空间高度累积。就我所知,在做这件事后你会很好。

+0

谢谢你的回答,但怎么可能计算所有空白的高度? – gpichler

+0

嗯,当我说白色空间时,我实际上是指标签和imageViews之间的垂直空间。我已经更新了我的答案。 :) – rptwsthi

+0

好吧,现在我开始正确的高度,但我现在有其他问题-.- 当我向下滚动,然后单击我的选项卡栏中的其他选项卡项,然后返回到此UIScrollView我不能再滚动了。我必须再次点击其他标签栏项目,然后再次返回到UIScrollView,然后再次正确显示。这非常不舒服。 – gpichler