Xcode CALayer没有可访问标识符

Xcode CALayer没有可访问标识符,xcode,calayer,ui-automation,xcuitest,Xcode,Calayer,Ui Automation,Xcuitest,我已经建立了一个概念证明来创建CAShapeLayer对象,并且我能够正确设置它的AccessibilityLabel。但是,我无法设置AccessibilityIdentifier(该属性似乎适用于UIView对象,但不适用于CALayer对象?) 有人知道如何为CALayer对象访问它吗?或者如果有可能的话?上面阿拉丁尼安的建议非常有效: “我还没有在实践中尝试过它,但是如果您已经将CALayer子类化,或者甚至在CALayer的扩展中采用该协议并返回其名称(例如),则可以采用UIAcces

我已经建立了一个概念证明来创建CAShapeLayer对象,并且我能够正确设置它的AccessibilityLabel。但是,我无法设置AccessibilityIdentifier(该属性似乎适用于UIView对象,但不适用于CALayer对象?)


有人知道如何为CALayer对象访问它吗?或者如果有可能的话?

上面阿拉丁尼安的建议非常有效:


“我还没有在实践中尝试过它,但是如果您已经将CALayer子类化,或者甚至在CALayer的扩展中采用该协议并返回其名称(例如),则可以采用UIAccessibilityIdentification协议并实现accessibilityIdentifier。”


像这样的事情?

没错。它适用于视图,但不适用于图层。不过,你的后援必须在视野之内。所以在视图上设置它。@Fogmeister-我在一个“内容”uiview中有多个图层对象。所以那是行不通的。还有别的办法吗?我还没试过,但是,如果您对
CALayer
进行了子类化,或者甚至在
CALayer
的扩展中采用了该协议,并返回其
名称,那么您可以采用
UIAccessibilityIdentification
协议并实现
accessibilityIdentifier
,例如,Alladinian,它工作得很好。
class AccessibilityLayer: CALayer, UIAccessibilityIdentification {
    var accessibilityIdentifier: String?
}
let layer = AccessibilityLayer()
layer.accessibilityIdentifier = "MyAccessibilityID"