ios - 当包含在 UITableViewCell 中时将 hidden 设置为 false 后,Accessibility Inspector 看不到 UIImageView

标签 ios uitableview uiimageview uiaccessibility

在我们的应用程序中,我们显示了一个项目列表,每个项目都有一个可以隐藏或显示的图像。

问题是,如果图像最初是隐藏的,当我们设置 hidden = false 时,图像会显示,但 Accessibility Inspector 不会识别它。

如果我们调用 reloadRows,则图像会被 Accessibility Inspector 识别。

但是,我想避免在图像的可见性发生变化时调用 reloadRows,因为这会增加复杂性(奇怪的依赖性)。

到目前为止我尝试过的是:

  • 在单元格上调用 setNeedsDisplay()
  • 发布UIAccessibilityLayoutChangedNotification

都不行。

“刷新/重新加载”单元格以便辅助功能检查器识别图像的任何其他想法?

请注意,我确实设置了可访问性标识符并将 isAccessibilityElement 设置为 true,因为在调用 reloadRows 后图像被识别。

谢谢, 科斯明

最佳答案

这里的问题是由于堆栈 View 。如果将 ImageView 保留在堆栈 View 之外,它应该可以正常工作。但是,由于您将它放置在堆栈 View 中,并且默认情况下它是隐藏的,因此当单元格加载时,可访问性顺序的确定方式是不存在这样的元素( ImageView ),因为它被隐藏并且堆栈 View 将其他 View 移入 ImageView 的位置。要让可访问性检查器读取 ImageView ,您需要重新加载 ImageView 可见的单元格,这次它会正常工作。

除了重新加载之外,您还可以为单元格定义 accessibilityElements,并根据 isHidden 属性添加 ImageView (如果可见)。

这将使 ImageView 易于访问。

关于ios - 当包含在 UITableViewCell 中时将 hidden 设置为 false 后,Accessibility Inspector 看不到 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58111417/

相关文章:

ios - objective-c : Resizing a UIImageView

ios - 动态添加图像到 uitextview 的各个位置

iphone - 设置使用 iPhone 相机捕获的图像类型

ios - 错误为 "The operation couldn’ 的 NSData 无法完成。 ( cocoa 错误 256。)”

ios - 以模态方式呈现 EKCalendarChooser

ios - iOS 7 中 UITableViewCell 左右两侧有额外间距

iphone - 如何使除选定一个以外的所有表格 View 单元格变灰

ios - 从两个不同的 nibs Swift 附加 tableview 自定义单元格

ios - 使用 CGContextRef 在大尺寸图像上绘制线条后在 iPad 中收到内存警告

ios - Swift - 在 UIImageView/UIScrollView 之上的 UIView