如何实现循环滚动机制?

时间:2009-05-06 15:40:34

标签: iphone cocoa-touch uikit gesture-recognition

我有一些用户应该选择的图像。现在我不想只提供一个带有无聊网格的平面滚动区域。相反,我想展示一个包含这些图像的轮子。在顶部将是指示选择的标记。类似于采摘者的东西。

问题不在于旋转的东西;我会使用一些几何函数。但我不知道如何在那个轮子上实际滚动手势。我必须从哪里开始?

顺便说一下:圆圈我不是指拾音器。我的意思是一个真正的车轮,有一个中心轴,可以滚动。就像很老的电话,就像一个自行车轮。或者选择器旋转90°,面向轴(Z坐标)。

2 个答案:

答案 0 :(得分:1)

如果您正在谈论捕捉手势,那么这里是the example they give in the docs

虽然我可以发誓我听到Alan Cannistraro在第一个CS193P lectures之一说你不必这样做,你可以抓住滑动事件,但我找不到。< / p>

有人真的知道他们在做什么请纠正我,我会删除这篇文章但是现在我知道这会有效:

#define HORIZ_SWIPE_DRAG_MIN  12
#define VERT_SWIPE_DRAG_MAX    4

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    startTouchPosition = [touch locationInView:self];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentTouchPosition = [touch locationInView:self];

    // If the swipe tracks correctly.
    if (fabsf(startTouchPosition.x - currentTouchPosition.x) >= HORIZ_SWIPE_DRAG_MIN &&
        fabsf(startTouchPosition.y - currentTouchPosition.y) <= VERT_SWIPE_DRAG_MAX)
    {
        // It appears to be a swipe.
        if (startTouchPosition.x < currentTouchPosition.x)
            [self myProcessRightSwipe:touches withEvent:event];
        else
            [self myProcessLeftSwipe:touches withEvent:event];
    }
    else
    {
        // Process a non-swipe event.
    }
}

答案 1 :(得分:0)

你在想什么类似于选择器视图?您可以使用自己的自定义子视图加载选取器视图,这可能是图像视图。这会让你得到一个真实的选择器视图与你的图像,这可能或可能不是你的目标。