2009-05-06 2 views
1

У меня есть некоторые изображения, с которых пользователь должен выбрать один. Теперь я не хочу просто предлагать плоскую область прокрутки со скучной сеткой. Вместо этого я хотел бы показать колесо, содержащее эти изображения. В верхней части будет маркер, указывающий на выбор. Что-то похожее на сборщиков.Как реализовать круговой механизм прокрутки?

Проблема не в ротации; Для этого я бы использовал некоторые геометрические функции. Но я понятия не имею, как на самом деле получить прокручивающие жесты на этом колесе. С чего начать?

BTW: С циркуляром я не имею в виду что-то вроде Pickers. Я имею в виду реальное колесо, которое имеет центральную ось и может быть свернуто. Как и старые телефоны, как велосипедное колесо. Или Picker поворачивается на 90 °, обращаясь к оси к вам (Z-координата).

+0

Вы спрашиваете, как фиксировать жесты? – 2009-05-06 18:05:07

+0

Да, я думаю, этот вопрос может подразумевать это, но я не был уверен, что мне нужно это сделать. – Thanks

ответ

1

Если вы говорите о захвате жесты, то вот the example they give in the docs.

Хотя я мог бы поклясться, что слышал, как Алан Каннистраро сказал в одном из первых CS193P lectures, что вам не нужно это делать, чтобы вы могли просто захватить событие салфетки, но я не могу этого найти.

Может кто-то, что на самом деле знает, что они делают, пожалуйста, поправьте меня, и я удалю этот пост, но теперь я знаю, что это будет работать:

#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. 
    } 
} 
0

Просто, как похожи на вид захватывающего вы думаете? Вы можете загрузить представление подбора с помощью собственных пользовательских подзонов, которые могут быть изображениями. Это даст вам реальный выборщик с вашими изображениями, которые могут быть или не быть тем, на что вы на самом деле нацелились.

+1

Нет, сборщик прокручивается только вертикально в действительности. Я ищу способ реализовать круговое колесо. Представьте себе велосипедное колесо, имеющее ось, и на каждом шипе висит изображение. Вы можете повернуть это колесо. И наверху есть стрелка, показывающая, какой из них выбран в текущий момент. Как старые механические кухонные яичные часы, или очень старые телефоны, которые используют колесо для набора. – Thanks

Смежные вопросы