2009-07-10 4 views

ответ

2

Пока экран коснулся, будут события касания. Также есть события касания и касания.

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesBegan"); 
} 

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesMoved"); 
} 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    NSLog(@"touchesEnded"); 
} 

Затем зарегистрируйте свой контроллер как touchController.

Также проверьте GLPaint пример компании Apple: https://developer.apple.com/iphone/library/samplecode/GLPaint/

+0

Это очень много работы, когда вы можете просто приложить действие к «TouchDownInside» для любого UIControl. –

2

Вы также можете сделать это путем создания IBAction и подключив его IB. Разработчик интерфейса для iPhone может фактически демультиплексировать различные типы событий. Если вы нажмете UIButton в своем пользовательском интерфейсе и отпустите кнопку мыши вместо перетаскивания соединения, вы увидите инспектора, который отобразит кучу разных действий, которые вы можете подключить. Когда вы просто перетаскиваете его по умолчанию, подключайте «Touch Up Inside», но если вы хотите, вы можете подключить «Touch Down» или «Touch Down Repeat», и это действие приведет к вызову соответствующего селектора.

Если вы делаете сложные вещи своими собственными жестами, то использование материалов, основанных на touchController, определенно будет лучшим подходом, но для простых вещей просто использование встроенных действий на основе nib может быть проще.

+0

Когда срабатывает touchDownRepeat? Это, как может надеяться OP, непрерывно, когда сенсорный «вниз» внутри кнопки? Это избавит вас от необходимости настраивать таймер. – Olie

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