Iphone 无法使用UI自动化访问TableViewCell元素
我有一个自定义的表格视图单元格,显示电话会议的详细信息。单元格构造函数的主体如下所示:Iphone 无法使用UI自动化访问TableViewCell元素,iphone,uitableview,automation,ios4,Iphone,Uitableview,Automation,Ios4,我有一个自定义的表格视图单元格,显示电话会议的详细信息。单元格构造函数的主体如下所示: - (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString*) reuseIdentifier { if(self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]) { self.contentView.isAcces
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString*) reuseIdentifier {
if(self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier]) {
self.contentView.isAccessibilityElement = YES;
self.contentView.accessibilityLabel = @"Blah";
conferenceNameLabel = [[UILabel alloc] initWithFrame:CGRectZero];
conferenceNameLabel.adjustsFontSizeToFitWidth = YES;
conferenceNameLabel.font = [UIFont systemFontOfSize:14];
conferenceNameLabel.isAccessibilityElement = YES;
conferenceNameLabel.accessibilityLabel = @"Name";
[self.contentView addSubview:conferenceNameLabel];
conferenceDateLabel = [[UILabel alloc] initWithFrame:CGRectZero];
conferenceDateLabel.adjustsFontSizeToFitWidth = YES;
conferenceDateLabel.font = [UIFont systemFontOfSize:14];
conferenceDateLabel.isAccessibilityElement = YES;
conferenceDateLabel.accessibilityLabel = @"Date";
[self.contentView addSubview:conferenceDateLabel];
recurringIconView = [[UIImageView alloc] initWithFrame:CGRectZero];
[recurringIconView setContentMode:UIViewContentModeScaleAspectFit];
recurringIconView.isAccessibilityElement = YES;
recurringIconView.accessibilityLabel = @"Icon";
[self.contentView addSubview:recurringIconView];
[self setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
}
return self;
}
使用UI自动化时,我可以使用辅助功能标签“Blah”访问内容视图。但我无法访问任何标签或ImageView。我无法使用UI自动化获取这些UI元素的原因是什么?在脚本中,您应该能够使用logElementTree()注销每个单元格的可访问性层次结构: 这些子视图应与其辅助功能标签一起显示在记录的树中 如果您无法通过标签来处理这些元素,那么您应该能够通过它们在同级视图列表中的相对位置来获取它们:
var firstLabel = cell.elements()[0];
我将介绍UI自动化,并展示如何在my中测试这样的表视图的示例。我将查看您的课程资料,也许会有一个“啊哈时刻”我会意识到我做了一些愚蠢的事情。我曾尝试记录元素树,但UI Automation报告说,我的单元格有一个长度为1的元素列表,单个元素是一个UIAEElement,其名称是会议呼叫的名称和日期,值为null。@Jonathan-这可能是因为它看起来像是表单元格辅助功能容器:。您可能需要重写自定义表格单元格中的UIAccessibilityContainer协议方法,以返回适当数量的标签和这些标签的数组。但是,请注意,这可能会降低视障用户对应用程序的可访问性。
var firstLabel = cell.elements()[0];