我已經走進了一個無障礙難題。在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