是否可以将可访问性操作分配给UILabel?

Mar*_*eIV 5 accessibility uilabel ios voiceover swift

在当前的用户界面中,某些标签旁边有一个帮助提示按钮,单击该按钮可解释标签所引用内容的详细信息。这样,VoiceOver会将这两个项目标识为单独的可访问性项目。

但是,当使用可访问性时,我们希望可以在标签本身中完成所有操作。这样,当标签聚焦时,用户将在此处“帐户值20美元(accessibilityLabel),连按两次以获取帮助(accessibilityHint)”。

但是,与按钮不同,标签没有与之关联的动作,因此我不确定如何连线实际触发可访问性手势以表明我想做某事。

除了将所有标签转换为按钮之外,还有什么方法可以监听标签上的可访问性“操作”方法?

我当前的解决方法是仅使“帮助提示”按钮可访问,然后将所有相关信息移至它们的可访问性属性,但这看起来像是代码异味,因为开发人员在更新代码时很容易错过它。

Pao*_*olo 7

在您的UILabel子类中,重写accessibilityActivate()并实现双击应该执行的操作:

override func accessibilityActivate() -> Bool {
    // do things...
    return true
}
Run Code Online (Sandbox Code Playgroud)

如果操作可能失败,则false在这些情况下返回。