我已经走进了一个无障碍难题。在UITableView子视图中丢失的辅助功能
我有一个视图,需要一个分组样式的tableView和(当按UIBarButtonItem时)一个普通的tableView。分组的tableView是默认的。我通过添加一个普通的视图控制器作为(分组的)tableView的子视图来解决这个问题,然后在翻转回分组的tableView时将其删除。它工作得很好。
我现在正在执行配音,并且遇到问题。当显示简单的tableView(简单的名称列表)时,配音文本是整个视图的“空列表”。发生了什么事是分组表视图仍然存在,并且空(零行),隐藏在普通tableView后面。 (从技术上讲,普通tableView是分组tableView的子视图,使用与分组tableView相同的CGRect,所以不会看到背景。)
我想要做的是从视频图像中“隐藏”空的分组tableView ,所以在普通的tableView上点击成为活动(说细胞内容)。 isAccessiblityItem
布尔似乎没有效果。
我确实理解一个单独的视图,分组视图和普通视图都是非标准视图,但这里使用它是有意义的,所以更改布局不是一种选择。
下面是表翻转代码的简化版本。
添加普通的tableView:
UITableView *plainTableView = plainViewController.tableView;
plainTableView.frame=groupedTableViewFrame;
plainTableView.delegate=self;
plainTableView.dataSource=self;
plainTableView.tag=1;
self.tableView.backgroundColor=[UIColor whiteColor];
[self.view addSubview:plainTableView];
[plainViewController release];
卸下普通的tableView:
for (UIView *subview in [self.view subviews]) {
if (subview.tag == 1) {
[subview removeFromSuperview]; //kills the plain view
self.tableView.backgroundColor=[UIColor groupTableViewBackgroundColor];
}
}
我已经尝试添加普通的tableView时,如加入各种isAccessibilityItem
设置:
plainTableView.isAccessibilityElement=YES;
self.tableView.isAccessibilityElement=NO;
这些没有明显的影响。
非常感谢任何帮助。谢谢!
你让我明白,我忘了提及的SDK @property的新方法(非原子)BOOL accessibilityElementsHidden NS_AVAILABLE_IOS(5_0); – thndrkiss 2013-07-30 06:09:14