【发布时间】:2013-07-10 05:44:34
【问题描述】:
我陷入了可访问性难题。
我的视图需要一个分组样式的 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;
没有明显影响。
非常感谢任何帮助。谢谢!
【问题讨论】:
标签: ios uitableview accessibility