UIScrollView的子视图应该如何报告他们对contentSize的界限?

时间:2010-05-23 21:05:30

标签: iphone uikit uiscrollview

我正在寻找有关视图正确设计的建议。

我所拥有的是一个UIScrollView,它包含我创建的一个或多个自定义视图。我的问题是,谁向scrollview报告它的contentSize应该是什么?我有以下内容:

UIView  
+-UIScrollView  
  +-CustomView 1 with dynamic height depending on data
  +-CustomView 2 with dynamic Height depending on data

UIViewController使用数据创建自定义视图的新实例,然后将它们作为子视图添加到UIScrollView。我遇到的问题是如何设置scrollview的contentSize的值?现在,我没有这样做,滚动视图的内容被裁剪而不能滚动。

  • 自定义视图是否应在其drawRect中调用[parent setContentSize:]:?
  • UIViewController是否应该在创建后查询自定义视图以获取其边界然后调用setContentSize?
  • 我是否应该将UIScrollView子类化以覆盖addSubView以查询每个子视图的高度?
  • 我还缺少其他什么吗?

我希望我能正确解释。我是新手,仍在处理事情。

1 个答案:

答案 0 :(得分:1)

滚动视图的contentSize应该是所有自定义视图的框架并集的大小。每当自定义视图的大小发生更改或添加或删除一个大小时,视图控制器都应计算新的contentSize并应用它。

从drawRect设置:基本上可以建立一个无限循环 使用边界不会在父视图中给出坐标 如果自定义视图不改变大小,则可以将UIScrollView子类化。