【问题标题】:VoiceOver with UISegmentedControl in SwiftSwift 中带有 UISegmentedControl 的旁白
【发布时间】:2021-06-01 18:12:12
【问题描述】:

我正在尝试将 VoiceOver 添加到分段控件,但 Apple 示例代码不适用于 Swift 3:

Objective C 代码:

NSString *title = @”∫”;
title.accessibilityLabel = @”Integral”;
[segmentedControl insertedSegmentedWithTitle:title];

不能像这样使用 Swift:

var title: NSString = "∫"
title.accessibilityLabel = "Integral"
segmentedControl.insertSegment(withTitle: title, at: 0, animated: false)

Swift 将只接受一个字符串,但我需要添加一个 NSString,因为它具有 VoiceOver 属性。

有什么可以帮忙的吗?

是否有更好的方法可以将辅助功能或 VoiceOver 添加到分段控件?

谢谢

格雷格

【问题讨论】:

  • Swift 也将接受 NSString。你有什么错误吗?
  • 最坏的情况,您可以遍历子视图并手动设置辅助功能标签。
  • Teja,insertSegment 的 swift 版本(withTitle 仅针对 String 的类型,不接受 NSString。
  • 安迪,对于应该“开箱即用”的东西来说,似乎需要做很多工作。

标签: ios objective-c swift accessibility uisegmentedcontrol


【解决方案1】:

根据我编码的安迪的评论:

    segmentedControl.subviews[0].accessibilityLabel = "Seg 2";
    segmentedControl.subviews[1].accessibilityLabel = "Seg 1";
    segmentedControl.subviews[2].accessibilityLabel = "Seg 0";

不是最好的,注意子视图与外观相反,但目前似乎是唯一的方法。

格雷格

【讨论】:

  • RADAR 归档:28355285 带有 UISegmentedControl 的旁白在 Swift 3 中损坏
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多