2015-08-04 4 views
2

Итак, у меня есть этот код, который в основном создает UIPanGestureRecognizer и добавляет его в представление. В целевом методе я просто печатаю количество касаний. Он работает нормально при нормальных обстоятельствах; и напечатать правильное количество касаний.3-Finger UIPanGestureRecognizer не работает, когда доступность -> Масштаб включен в «Приложение настроек»

Но если включено «Настройки -> Доступность -> Масштабирование», то он не срабатывает при касании 3 пальцев.

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIPanGestureRecognizer *tempGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleTempGesture:)]; 
    tempGesture.minimumNumberOfTouches = 1; 
    tempGesture.maximumNumberOfTouches = 3; 
    [tempGesture setDelegate:self]; 
    [self.view addGestureRecognizer:tempGesture]; 
} 

- (void)handleTempGesture:(UIGestureRecognizer *)recognizer 
{ 
    NSUInteger touches = recognizer.numberOfTouches; 
    NSLog(@"Touches Count: %i", (int)touches); 
} 

Есть ли способ обойти это без необходимости выключать зум.

PS: Даже 3-Finger UITapGestureRecognizer не работает.

ответ

1

No. Тем не менее, вы можете предупредить пользователей о конфликте и предложить им возможность отключить масштабирование доступности с помощью API UIAccessibilityRegisterGestureConflictWithZoom(). Убедитесь, что вы предложили альтернативный способ активации функции, чтобы пользователи функции масштабирования и других возможностей доступа могли полностью наслаждаться вашим приложением.