gpt4 book ai didi

objective-c - 在 UITableView header 中包含的 UIImageView 上设置 accessibilityLabel

转载 作者:技术小花猫 更新时间:2023-10-29 11:00:02 25 4
gpt4 key购买 nike

我有一个在 loadView 中构建的 UITableView。我在 loadView 中做的一件事是创建一个 UIView 作为表头并将 UIImageView 填充到其中。 ImageView 包含一个图像,它是一个风格化的标题,所以我想为 VoiceOver 用户添加一个辅助功能标签。但是,我无法让 VoiceOver“聚焦”图像以阅读标签,并且辅助功能检查器不响应在模拟器中单击图像。我的(缩写)代码如下:

... in -loadView ...
// Make header view
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(...)];
UIImageView *titleImageView = [[UIImageView alloc] initWithImage:[self titleImage]];
titleImageView.accessibilityLabel = [self accessibilityLabelForTitleImage];
[headerView addSubview:titleImageView];

// Make table view
self.tableView = [[UITableView alloc] initWithFrame:CGRect(...) style:UITableViewStylePlain];
self.tableView.tableHeaderView = headerView;
... code continues ...

我在 gdb 中单步执行,accessibilityLabelForTitleImage 返回一个字符串。 po [titleImageView accessibilityLabel] 打印出正确的字符串,但我仍然无法专注于 ImageView 。请注意, View 本身会出现并做出适当的响应。

我错过了什么吗?有没有办法强制 VoiceOver 确认 ImageView ?

最佳答案

在 Voice-Over 中,为了使元素可访问:-

  1. 您必须将 setIsAccessibilityElement 属性设置为 true,我在您的代码中找不到。

  2. 另一个重要的一点是,要使子元素( subview )可访问,您必须单独使它们可访问,而父元素不应可访问(您也必须指定)。

  3. 在您的自定义单元格中实现 UIAccessibilityContainer 协议(protocol)。

再说下去就是个大故事了,请引用这个Accessibility voice over by apple .

希望这对您有所帮助。

关于objective-c - 在 UITableView header 中包含的 UIImageView 上设置 accessibilityLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10642877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com