1

我在 UITableView 中有一个按钮。UITableView 是在情节提要中创建的,但按钮是实用的。我得到:

发生意外异常SLUIAElementInvalidException,原因是:元素 '<SLButton description:"Add Memberin">' 不存在。

当我尝试“点击”按钮元素时:

SLButton *addMemberButton = [SLButton elementWithAccessibilityLabel:@"Add Member"];
SLLog(@"%@", addMemberButton); // prints <SLButton description:"Add Member">
[addMemberButton tap];

我在 viewController 的 viewDidLoad 中有以下代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    self.addMemberButton.isAccessibilityElement = YES;
    self.addMemberButton.accessibilityValue  = @"Add Member";
    self.addMemberButton.accessibilityTraits = UIAccessibilityTraitButton;
}

当我使用可访问性检查器时,该按钮是可访问的并且具有我创建的标签。我什至尝试使用以下方法关闭 UITableView 中的可访问性:

self.tableView.isAccessibilityElement = NO;
self.tableView.accessibilityLabel = nil;

这没什么区别。任何有关如何解决此问题的见解将不胜感激。

4

1 回答 1

0

看起来您正在尝试按标签匹配按钮,但“添加成员”实际上是按钮的value

SLButton *addMemberButton = [SLButton elementWithAccessibilityLabel:nil value:@"Add Member" traits:UIAccessibilityTraitButton];

应该可以代替,尽管我认为将“添加成员”设置为标签会更合适(请参阅此处accessibilityLabel的vs.描述以及此处的指南)。accessibilityValue

如果“添加成员”是按钮的标题,您实际上不需要手动设置任何属性——按钮会自动从其标题中获取其可访问性标签。

于 2014-08-11T21:01:28.073 回答