我正在编写一个应用程序,我需要将标签放在屏幕顶部,并且每当用户触摸它(或在其上方滑动手指)时,我都需要大声读出标签文本。我尝试了以下方法:
首先使标签的可访问性元素 = 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);
}
是否有我遗漏的东西或在可访问性模式下没有手势工作,因为许多都是预定义的。例如。两指两按是音乐开/关等。如果是这种情况,我至少需要滑动才能工作。对此有什么想法吗?
PS我在这里看到了类似问题的解决方案。但是缩放手势很特别,对我没有帮助。此外,所有手势类都可以在没有可访问性模式的情况下完美运行,因此它们已正确编写。