画面の上部にラベルを配置する必要があるアプリをプログラミングしています。ユーザーがラベルに触れる (またはその上で指をスワイプする) たびに、ラベルのテキストを読み上げる必要があります。私は次の方法を試しました:
まず、ラベルのアクセシビリティ要素を = にしYES
ます。
[labelInfo setIsAccessibilityElement:YES];
しかし、これはうまくいきません。次に、2 回のタッチ、1 回のタップなど、多くのジェスチャを定義してみました。1 本指と 2 本指などを使用してロングタップし、そのジェスチャー クラスで を書き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);
}
多くのものが事前定義されているため、アクセシビリティモードで不足しているものやジェスチャが機能しないものはありますか? たとえば。2 本指 2 タップは、音楽のオン/オフなどです。この場合、機能するには少なくともスワイプが必要です。これについて何か考えはありますか?
PS私はここで同様の質問の解決策を見てきました。しかし、それはジェスチャーのズームに特有のものであり、私には役に立ちません。また、すべてのジェスチャ クラスはアクセシビリティ モードがなくても完全に機能するため、正しく記述されています。