我有一个自定义的表视图单元格,用于显示电话会议的详细信息。单元格构造函数的主体如下:
- (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 Automation时,我可以使用辅助功能标签“Blah”访问内容视图。但我无法访问我的任何标签或我的ImageView。我无法使用UI自动化获取这些UI元素的任何原因?
答案 0 :(得分:4)
在您的脚本中,您应该能够使用logElementTree()注销每个单元格的辅助功能层次结构:
cell.logElementTree();
这些子视图应显示在该记录的树中,以及它们的可访问性标签。
如果你以某种方式不能通过他们的标签来处理这些元素,你应该能够通过它们在兄弟视图列表中的相对位置来获取它们:
var firstLabel = cell.elements()[0];
我浏览了UI自动化,并展示了如何在course on iTunes U中测试这样的表格视图的示例。