无限/循环UI Scrollview同步问题

时间:2014-05-13 11:09:27

标签: ios uiscrollview

我遇到了一个问题,我一直在努力解决这个问题,我有一个无限/循环的UIScrollview /标题(下图中的A部分),我想要与UIViewController同步(部分) B)。当页眉滚动时,我想计算它滚动的百分比并将其应用到下级控制器。

我已经知道如何做到这一点,但问题是为了使scrollview无限,我使用了Apple街道卷轴示例。由于我在尝试计算滚动的百分比时使用了contentOffset,当调用下面的方法(recenterIfNecessary)时,会导致内容偏移量跳跃并弄乱计算(即它将计算50%然后跳转调用方法时返回10%或其他值。

我已经在SO上做了很多搜索,看看是否有其他人有类似的问题但我找不到它,有关于如何实现无限/循环行为的帖子(我已经工作了) )但是,我无法找到任何与我的问题有关的内容。我还检查了在Cocoa Controls上创建的控件,我也找不到这样的控件。基本上我想要实现的是Windows Pivot Control:https://www.youtube.com/watch?v=gdUb5kYUXOQ

- (void)recenterIfNecessary {
    CGPoint currentOffset = self.contentOffset;
    CGFloat contentWidth = self.contentSize.width;
    CGFloat centerOffsetX = (contentWidth - self.bounds.size.width) / 2.0;
    CGFloat distanceFromCenter = fabs(currentOffset.x - centerOffsetX);

    if (distanceFromCenter > (contentWidth / 4.0)) {
        self.contentOffset = CGPointMake(centerOffsetX, currentOffset.y);

        for (UIView *label in self.visibleLabelTitles) {
            CGPoint center = [self.labelContainerView convertPoint:label.center toView:self];
            center.x += (centerOffsetX - currentOffset.x);
            label.center = [self convertPoint:center toView:self.labelContainerView];
        }
    }
}

enter image description here

0 个答案:

没有答案