我正在使用KIF框架,从各种API中,我可以获取名为RDTokenCell
的特定UITableViewCell
子类的UITableViewCellAccessibilityElement
。
(lldb) po element
[UITableViewCellAccessibilityElement - 0x148c9f30] <RDTokenCell: 0x14bf6db0;
baseClass = UITableViewCell; frame = (0 0; 320 50);
text = 'Fake Group 331'; autoresize = W;
layer = <CALayer: 0x14bf6f80>>) <NSIndexPath: 0x1596e2b0>
{length = 2, path = 0 - 0} - Recipient Fake Group 331
但是,当我调用element.accessibilityContainer
时,它返回包含UITableView
,而不是元素引用的UITableViewCell
。
为什么会这样,如何获取单元格而不是表格视图?
额外的UIView
覆盖了UITableViewCell
,直到按下 UI 中的X
按钮关闭。显然,封锁UIView
迫使UITableViewCell
的accessibilityContainer
到父UITableView
。
我强迫KIF
首先关闭顶层UIView
,指示它按下X
按钮,然后所有UITableViewCell
都可以访问。
故事的寓意是,如果UIView
覆盖了辅助功能元素,则辅助功能容器可能默认为所包含元素的超级视图。