顶级容器视图是自定义UICollectionView。我在自上而下的位置添加了两个自定义容器视图。层次结构树如下所示
自定义UICollectionView
| - 自定义UIView容器=> 1 ImageButton
| - 自定义UIView容器=> 8个按钮
| - 自定义UICollectionCells
Voice Over可以正确响应这些按钮。
但是当我尝试将UIAutomation
与target.logElementTree()
一起使用时,元素树只在cutom UICollectionView下找到UICollectioncell列表,它找不到自定义子视图容器及其子代。
然后我尝试使用app.debugDescription
进行Xcode UI测试。结果仍然只包含自定义UICollectionView中的UICollectionCells,没有按钮。
如何让它们出现在UIAutomation元素树中?
答案 0 :(得分:0)
最后将Aspects与自定义收藏类别结合使用:
在自定义收藏类别中,覆盖+(void)load
:
a
,该属性在执行后accessibilityElements
或initWithFrame:collectionViewLayout:
initWithCoder:
a
addSubview:
最后,使用属性a
棘手的部分:
使用objc_setAssociatedObject
和objc_getAssociatedObject
来处理a