带负原点平铺的UIScrollView

带负原点平铺的UIScrollView,uiscrollview,tiles,offset,Uiscrollview,Tiles,Offset,我有一个点在屏幕上移动。当它超出滚动视图的范围时,将创建一个新的平铺,点可以移动到该平铺上,并增加滚动视图的大小。我通过以下方式跟踪此情况: scrollViewBounds = CGRectUnion(newTileBounds, scrollViewBounds); [scrollView setContentSize:scrollViewBounds.size]; 只要新的瓷砖具有非负原点,这就可以正常工作。如果新创建的平铺位于左侧边界,且原点为负值,则边界大小将在右侧得到补偿。我知道s

我有一个点在屏幕上移动。当它超出滚动视图的范围时,将创建一个新的平铺,点可以移动到该平铺上,并增加滚动视图的大小。我通过以下方式跟踪此情况:

scrollViewBounds = CGRectUnion(newTileBounds, scrollViewBounds);
[scrollView setContentSize:scrollViewBounds.size];
只要新的瓷砖具有非负原点,这就可以正常工作。如果新创建的平铺位于左侧边界,且原点为负值,则边界大小将在右侧得到补偿。我知道setContentSize只说明视图的大小,而不是它的位置

所以我试着使用setContentOffset,这看起来效果不稳定,但是如果我滚动,它会跳回正区域,你就不能再滚动到负区域了


你如何使负片来源的瓷砖可见?

< P>你可以从内容视图的中间开始,将Cordon Stand设置为最大可能的尺寸。这样你就不需要动态调整内容大小了。

你可以从内容视图的中间开始,将内容大小设置为最大可能的大小。通过这种方式,您不需要动态调整内容大小。

从技术上讲,负原点位于滚动视图区域之外。如果对象移动到该区域之外,则需要完全重新创建该区域,设置偏移量使其看起来好像没有重新创建,然后将内容移动到视图中。或者重新定位内容和圆点,使其看起来像是向该方向滚动(如果有意义的话)

抽象地说,这是您定位内容的方式:

if(object.origin.x < 0) {
 contentArea.origin.x = -contentArea.bounds.width;
 object.origin.x = contentArea.bounds.width + object.origin.x;
}
if(object.origin.x<0){
contentArea.origin.x=-contentArea.bounds.width;
object.origin.x=contentArea.bounds.width+object.origin.x;
}

希望这有帮助

从技术上讲,负原点在滚动视图区域之外。如果对象移动到该区域之外,则需要完全重新创建该区域,设置偏移量使其看起来好像没有重新创建,然后将内容移动到视图中。或者重新定位内容和圆点,使其看起来像是向该方向滚动(如果有意义的话)

抽象地说,这是您定位内容的方式:

if(object.origin.x < 0) {
 contentArea.origin.x = -contentArea.bounds.width;
 object.origin.x = contentArea.bounds.width + object.origin.x;
}
if(object.origin.x<0){
contentArea.origin.x=-contentArea.bounds.width;
object.origin.x=contentArea.bounds.width+object.origin.x;
}

希望这有帮助

问题是我不知道最大尺寸是多少。点可以在任何方向上任意移动。问题是我不知道最大尺寸是多少。点可以在任何方向上任意移动。