我正在编写一个应用程序,我需要在屏幕顶部放置一个标签,每当用户触摸它(或在其上方滑动手指)时,我需要大声读出标签文本。我尝试了以下方法:
首先制作标签的可访问性元素 =YES
.
[labelInfo setIsAccessibilityElement:YES];
但这行不通。
然后我尝试定义许多手势,例如两次触摸、单击;使用一根和两根手指等长按,在我写的手势课中UIAccessibilityPostNotification
,以便可以大声朗读文本。但这似乎根本不起作用。我就是这样做的:
UITapGestureRecognizer *TapOnLabel = [[UITapGestureRecognizer alloc] initWithTarget:labelInfo action:@selector(TapOnLabel:)];
[TapOnLabel setIsAccessibilityElement:YES];
[TapOnLabel setNumberOfTapsRequired:2];
[TapOnLabel setNumberOfTouchesRequired:1];
[labelInfo addGestureRecognizer:TapOnLabel];
[TapOnLabel release];
-(void) TapOnLabel:(UITapGestureRecognizer *)gestureRecognizer
{
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Where am I?");
NSLog(@"%@",labelInfo.text);
}
是否有我遗漏的东西,或者在辅助功能模式下没有手势工作,因为许多手势是预定义的。对于前。两根手指两次点击是音乐开/关等。
如果是这样的话,我至少需要刷卡才能工作。对此有什么想法吗?
附:我看过类似问题的解决方案here https://stackoverflow.com/questions/6583757/ios-gesture-not-detected-due-to-accessibility-settings。但缩放手势是特有的,对我没有帮助。此外,所有手势类都可以在没有辅助功能模式的情况下完美工作,因此它们已正确编写。
手势全部被 VoiceOver 拦截。有手势直通模式,您可以双击屏幕并按住手指 1 秒。然后,您将听到提示音,并且拦截将被禁用,直到您抬起手指或完成手势。这基本上为您提供了 8 个可以完成的手势 - 四次滑动和四次拖动。
但话虽如此,为什么您的应用程序需要以这种方式运行?为什么您不能简单地添加辅助功能标签和/或提示并允许 VoiceOver 焦点和触摸探索按其设计工作?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)