我的应用程序满足 3 种类型的单击:1 指敲击、2 指敲击和 3 指敲击以及一些滑动手势。
但是当 Voice Over 开启时,他们无法正确检测到点击。
我试过了
if (UIAccessibilityIsVoiceOverRunning()) {
UIView *interactionView = [[UIView alloc]init];
[self.view addSubview:interactionView];
[self.view bringSubviewToFront:interactionView];
[interactionView setAccessibilityTraits:UIAccessibilityTraitAllowsDirectInteraction]; }
但它不适用于水龙头
最佳答案
为了能够在打开 VoiceOver 的情况下处理点击(touchesBegan:withEvent:
等),您需要设置 UIView 的两个变量:
view.accessibilityTraits = UIAccessibilityTraitAllowsDirectInteraction;
view.isAccessibilityElement = YES;
你没有设置后者。但是,请记住,这样做会禁用对该 View 所做的一些默认手势。如果您不想要那样并且只需要基本手势而不是完全控制触摸,请尝试将手势识别器 (
addGestureRecognizer:
) 像 UITapGestureRecognizer
添加到 View 中。关于iphone - 直接与画外音互动?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8907137/