2009-09-03 4 views
1

У меня есть 4-5 uibuttons (также можно использовать uiview вместо кнопки) рядом друг с другом.Сила отменить сенсорный iphone

Когда пользователь перемещается с одной кнопки на другую (за пределами собственного вида), я хочу отменить это прикосновение и начать касаться следующей кнопки (вид).

Как достичь этой функциональности?

Я использовал uiview вместо кнопок, которые держали его рядом друг с другом, обрабатывали его события касаний.

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{ 

UITouch *touch = [touches anyObject]; //anyobject 
CGPoint touchLocation = [touch locationInView:touch.view]; 
if(![self pointInside:touchLocation withEvent:nil]) 
{ 
//touch is outside of my current view , do something to cancel current touch and i can get touchesmoved for the next view . help me to write something. 
} 

}

Есть ли другой способ справиться с событием, когда у нас есть такой интерфейс.

Спасибо.

+0

дополнения к вышесказанному, Мы можем думать о фортепианном приложении. Как они получают события касания, когда пользователь скользит пальцем от одной клавиши к другому ключу? Как добиться такого поведения. Пожалуйста, предоставьте мне ссылку или код. – Niraj

ответ

1

Если вы используете UIButtons, вы можете просто использовать события кнопки для этого. Когда вы получаете touchDown или touchDragInside, играйте в свою заметку. Остановитесь, когда получите touchUpInside или touchDragOutside.

+0

Спасибо за помощь. Я пытался с событиями UIButton. touchdown wil отлично работает. но перетаскивание событий (dragoutside и draginside) находится вне кнопки. – Niraj

+0

У вас есть рабочий код, который может помочь мне решить эту проблему? – Niraj

+0

Способ перетаскивания для работы UIButtons заключается в том, что он смотрит, где началось перетаскивание и где оно закончилось. Если он зашел за пределы кнопки и попал в область кнопки, он вызывает ваш метод (IBAction). Если он запустился внутри кнопки и закончился снаружи, он вызывает ваш метод touchDragOutside. – mahboudz

0

Вы должны обрабатывать прикосновения себя от подкласса UIWindows, или из контейнера UIViewController (в этом случае не забудьте отключить userInteractionEnabled свойства)

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