Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios5 网间网操作系统。如何将UIScrollview滚动限制在有限的范围内?_Ios5_Uiscrollview_Uiscrollviewdelegate - Fatal编程技术网

Ios5 网间网操作系统。如何将UIScrollview滚动限制在有限的范围内?

Ios5 网间网操作系统。如何将UIScrollview滚动限制在有限的范围内?,ios5,uiscrollview,uiscrollviewdelegate,Ios5,Uiscrollview,Uiscrollviewdelegate,设置UIScrollView左/右滚动限制的最佳方式是什么。我本以为这很容易,但我所有的尝试都没有成功 因此,我需要一个解决方案,允许我在使用我的应用程序的过程中,随时以编程方式限制滚动范围。这通常是为了响应所显示数据的更改 谢谢, Doug您需要做的就是使用以下代码更改滚动视图的内容大小 [scrollView setContentSize:CGSizeMake(宽度、高度)]您可以使用滚动视图的contentSize属性控制内容的大小。如果这对您来说是不够的(例如,您需要将滚动区域限制在内容

设置UIScrollView左/右滚动限制的最佳方式是什么。我本以为这很容易,但我所有的尝试都没有成功

因此,我需要一个解决方案,允许我在使用我的应用程序的过程中,随时以编程方式限制滚动范围。这通常是为了响应所显示数据的更改

谢谢,

Doug

您需要做的就是使用以下代码更改滚动视图的内容大小


[scrollView setContentSize:CGSizeMake(宽度、高度)]

您可以使用滚动视图的contentSize属性控制内容的大小。如果这对您来说是不够的(例如,您需要将滚动区域限制在内容的中间任意区域),则可以强制在滚动视图的委托方法中将内容偏移限制在所需的限制范围内。 基本上,代码可能如下所示:

- (void) scrollViewDidScroll:(UIScrollView*)scroll{
    CGPoint offset = scroll.contentOffset;

    // Check if current offset is within limit and adjust if it is not
    if (offset.x < minOffsetX) offset.x = minOffsetX;
    if (offset.y < minOffsetY) offset.y = minOffsetY;
    if (offset.x > maxOffsetX) offset.x = maxOffsetX;
    if (offset.y > maxOffsetY) offset.y = maxOffsetY;

    // Set offset to adjusted value
    scroll.contentOffset = offset;
}
-(无效)scrollViewDidScroll:(UIScrollView*)滚动{
CGPoint offset=scroll.contentOffset;
//检查当前偏移量是否在限制范围内,如果不在限制范围内,则进行调整
如果(offset.xmaxOffsetX)offset.x=maxOffsetX;
如果(offset.y>maxOffsetY)offset.y=maxOffsetY;
//将偏移设置为调整后的值
scroll.contentOffset=偏移量;
}

我采用在重载的layoutSubviews方法中放置平移约束的方法

伪代码:

Calculate criteria for constraining pan
if (pan-constraint-is-met) {

    Calculate pan-limit
    [self setContentOffset:limitedContentOffset];

}

在我的情况下,我无论如何都不能更改中的内容。我正在做一个可视化应用程序,内容大小是可视化的基础。我要找的是类似于MinimumZoomSale和MaximumZoomSale的东西。更改这些值对内容没有影响。Vladimir,我实际上找到了一种与您的解决方案类似的方法。我在scrollView子类中重写LayoutSubView,并在那里执行钳制操作,类似于在scrollViewDelegate中执行的操作。事实上,我不知道哪种方法更可取。如果我回忆起,委托方法在LayoutSubView之后激发。有什么想法吗?启用分页时,这会导致问题,分页将无法正常工作。