我有一个在屏幕上移动的点。当它超出滚动视图的边界时,会创建一个新的图块,点可以移动到该图块并增加滚动视图的大小。我跟踪这个:
scrollViewBounds = CGRectUnion(newTileBounds, scrollViewBounds);
[scrollView setContentSize:scrollViewBounds.size];
只要新图块具有非负原点,这就可以正常工作。如果新创建的切片位于左边框并且具有负原点,则边界大小将在右侧进行补偿。我知道setContentSize只说明视图的大小,而不是它的位置。
所以我尝试使用setContentOffset,这似乎工作很糟糕,但是如果我滚动,它会跳回到正区域,你不能再滚动到负区域了。
如何使负面起源的瓷砖可见?
答案 0 :(得分:0)
您可以在内容视图的中间开始,并将contentSize设置为最大可能的大小。这样您就不需要动态调整内容大小。
答案 1 :(得分:0)
从技术上讲,负面起源位于滚动视图区域之外。如果对象移动到该区域之外,则需要完全重新创建该区域,设置偏移量使其看起来没有重新创建,然后将内容移动到视图中。或重新定位内容和点,以便它们看起来像是在那个方向滚动(如果这是有道理的)......
抽象地说,这就是你如何定位内容:
if(object.origin.x < 0) {
contentArea.origin.x = -contentArea.bounds.width;
object.origin.x = contentArea.bounds.width + object.origin.x;
}
希望这有帮助!