SLElement不存在xCode 5.1

时间:2014-08-11 19:36:31

标签: subliminal

我在UITableView中有一个按钮。 UITableView是在storyboard中创建的,但按钮是实用创建的。我明白了:

出现意外异常 SLUIAElementInvalidException ,原因是:元素'< SLButton说明:"添加成员">'不存在。

当我尝试"点击"按钮元素:

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;

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

1 个答案:

答案 0 :(得分:0)

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

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

应该有效,但我认为将“添加成员”设置为标签会更合适(请参阅accessibilityLabelaccessibilityValue here的说明,以及准则here)。

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