是否可以在 iPhone 上使用 VoiceOver 来宣布标签上的更新文本,如果它发生变化?
这类似于 ARIA 中的实时区域。
谢谢。
您可以使用 VoiceOver 播报您喜欢的任何文本:
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, @"Your text");
如果标签应在更新后立即宣布其文本,只需扩展UILabel
并覆盖该setText
方法。
.h 文件:
@interface UIVoicedLabel : UILabel {
}
@end
及其实现:
#import "UIVoicedLabel.h"
@implementation UIVoicedLabel
- (void) setText:(NSString *)text {
// Set the text by calling the base class method.
[super setText:text];
// Announce the new text.
UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, text);
}
@end
这对我来说非常有效:)
这是 Swift 4 版本
UIAccessibility.post(notification: UIAccessibility.Notification.announcement, argument: "Your text")