2014-02-15 2 views
1

Я попытался использовать пользовательский UIControl в контроллере просмотра. Мой собственный класс, который является подклассом UIControl и выделить экземпляр для моего пользовательского элемента управления и добавления в систему для просмотра с моей точки зрения контроллера на следующий кодcancelTrackingWithEvent получить вызов даже прикосновение делегата возвращает ДА ​​

я реализовал следующие делегаты, которые возвращает для YES, чтобы обеспечить непрерывную связь.

- (BOOL) beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event{ 
     [super beginTrackingWithTouch:touch withEvent:event]; 
     return YES; 
    } 

    - (BOOL) continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event{ 
     [super continueTrackingWithTouch:touch withEvent:event]; 
     return YES; 
    } 

    - (void) endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event{ 
     [super endTrackingWithTouch:touch withEvent:event]; 
    } 

    - (void)cancelTrackingWithEvent:(UIEvent *)event 
    { 
     NSLog(@"Touch cancelled"); 
    } 

Но - (void)cancelTrackingWithEvent:(UIEvent *)event дозвонились, когда я отслеживания. После этого мне пришлось бы снова взять мой палец и снова перетащить. то только я начинаю и продолжаю отслеживать делегатов

ответ

1

В соответствии с вашим вопросом, отслеживая, cancelTrackingWithEvent: вызывается. Правильно. Проверьте свой вид или супервизор с помощью обратных вызовов Gesture. Если вы добавили pan Gesture, этот тип проблемы будет расти. Это ваше управление касанием будет begin and get tracked upto this tracking change to panning.

Чтобы решить эту проблему, установите тег на свое мнение и отмените вызов жестов, как показано ниже.

Во время создания вида

yourView.tag = CANCELVIEWTAG; 

Отменить жест, если касание произойдет с вашей точки зрения.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 

    if (touch.view.tag == CANCELVIEWTAG) { 
     return NO; 
    } 
    return YES; 
} 
Смежные вопросы