我现在用UIScrollView玩弄了一段时间。我想要的是根据各种因素将子视图插入scrollView。由于我只能在垂直方向滚动滚动视图,因此我会在当前可见视图之前或之后插入子视图。
所以,假设我当前可见视图的帧是(0,0,320,480),scrollView的contentSize是(320,480),当前contentOffset是(0,0)
当我想在currentView上方插入子视图并保持currentView成为焦点时,我将新的子视图插入位置(0,-480,320,480)并将scrollView的contentSize更改为(320,960),同时保持contentOffset与(0,0)相同。
令人惊讶的是,UIScrollView在currentView之后添加了“额外”空间,而不是将其插入到currentView之上。虽然上面新插入的视图永远不会引起关注,但是UIScrollView可能会假设来自错误的contentOffset的contentSize!
我用谷歌搜索,发现有一些others面临类似的问题,但尚未产生结果: Set starting point of content size for UIScrollView
如果我做错了什么,请告诉我?或者这是某种限制等?
谢谢!
编辑:有些threads建议更改contentSize会影响contentOffset属性,因此为了确保这不会导致问题,我只在更改contentSize后才更新contentOffset属性。即便如此,我也面临同样的问题。
答案 0 :(得分:2)
您可以通过以下方式解决此问题:
所以,实际上,将一切都降低了480点
答案 1 :(得分:1)
原点始终为(0,0)
。如果您要在当前偏移量之上插入一些内容,则需要按480 points
向下移动当前视图,在(0,0)
添加新视图并将contentOffset设置为(0,480)
(以及contentSize为(320,960)
。