我有一个视图层次结构如下:
-UIScrollView
--UITableView
---UIView
项目中的所有代码都是:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:scrollView];
UITableView *tableView = [[UITableView alloc] initWithFrame:scrollView.bounds];
tableView.delegate = self;
tableView.dataSource = self;
[scrollView addSubview:tableView];
UIView *tableSubView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 20)];
[tableView addSubview:tableSubView];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *idForCell = @"id";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:idForCell];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:idForCell];
}
cell.textLabel.text = [NSString stringWithFormat:@"%@",@(indexPath.row)];
return cell;
}
我在自动化中的js代码是:
var target = UIATarget.localTarget();
target.delay(2);
target.logElementTree();
最后我用仪器检查跟踪日志中的元素树显示,结果是:
-UIATarget
--UIAApplication
---UIAWindow
----UIAScrollView
-----UIATableView
------UIATableCell
------UIATableCell
------UIATableCell
但是我无法找到tableSubView
元素,有人能告诉我原因吗?TKS非常多!
答案 0 :(得分:0)
尝试更改行
[tableView addSubview:tableSubView];
到
[tableView.superview addSubview:tableSubView];
答案 1 :(得分:0)
有时,UIAutomation with Instruments有点棘手。在致电target.logElementTree();
之前,您可以尝试多种方法:
将scrollToVisible()设为tableView
target.mainWindow().scrollViews()[0].tableViews()[0].scrollToVisible()
;
将辅助功能标签添加到表子视图中。在您的代码中:
UIView *tableSubView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 20)];
tableSubView.accessibilityLabel = @"tableSubview";
你可以将两者结合起来。我希望这会对你有帮助!