我的应用程序满足于单击3种类型:1个指尖,2个指尖和3个指尖以及一些滑动手势。
但是当Voice Over打开时,他们无法正确检测到点按。
我试过了
if (UIAccessibilityIsVoiceOverRunning()) {
UIView *interactionView = [[UIView alloc]init];
[self.view addSubview:interactionView];
[self.view bringSubviewToFront:interactionView];
[interactionView setAccessibilityTraits:UIAccessibilityTraitAllowsDirectInteraction]; }
但它不适用于水龙头
答案 0 :(得分:4)
为了能够在启用VoiceOver的情况下处理水龙头(touchesBegan:withEvent:
等),您需要设置UIView的两个变量:
view.accessibilityTraits = UIAccessibilityTraitAllowsDirectInteraction;
view.isAccessibilityElement = YES;
你没有设置后者。但是,请记住,这样做会禁用在该视图上进行的某些默认手势。如果你不想那样,只需要基本的手势而不是完全控制触摸,请尝试在视图中添加手势识别器(addGestureRecognizer:
),如UITapGestureRecognizer
。