我有一个 UITableViewController,我正在尝试自定义部分标题,使其看起来更像纯文本。我发现当我将子视图添加到自定义 headerView(如下详述)时,它会破坏 VoiceOver 标题导航。
例如:假设我有一个包含三个标题的表:Header1、Header2、Header3。
如果没有 viewForHeaderInSection 方法的自定义实现,我可以切换画外音转子以按标题导航,一切都按预期工作。
当我以以下方式实现 viewForHeaderInSection 方法时,我可以从 Header1 移动到 Header2 到 Header3 并备份到 Header2,但是画外音会丢失所有标题(说“找不到标题”)。
当我将 headerLabel 作为子视图添加到 headerView 时,我发现问题开始了。我尝试将 headerLabel 设置为隐藏的可访问性元素,因此画外音不会拾取它,但问题仍然存在。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0,0,tableView.frame.size.width,30)];
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 0, headerView.frame.size.width-120.0, headerView.frame.size.height)];
headerLabel.textAlignment = UITextAlignmentLeft;
headerLabel.font = [UIFont boldSystemFontOfSize:22];
headerLabel.text = [headersArray objectAtIndex:section];
headerLabel.backgroundColor = [UIColor clearColor];
[headerView addSubview:headerLabel];
return headerView;
}
任何关于 VoiceOver 做出如此反应的想法都将不胜感激。
谢谢。