私は自分自身をアクセシビリティの問題に取り組んできました。アクセシビリティがUITableViewのサブビューで失われました
グループ化されたスタイルのtableViewと(UIBarButtonItemを押したときに)プレーンなtableViewを必要とするビューがあります。グループ化されたtableViewがデフォルトです。私は、(グループ化された)tableViewのサブビューとしてプレーンビューコントローラを追加し、グループ化されたtableViewに戻すときにそれを削除することでこれを解決しました。それはとてもうまくいく。
私は今、ボイスオーバーを実装しており、問題に遭遇しています。プレーンなtableView(単純な名前のリスト)が表示されている場合、ボイスオーバーテキストはビュー全体の「空のリスト」です。何が起こっているのは、グループ化されたテーブルビューがまだそこにあり、単純なtableViewの後ろに隠されている空(ゼロ行)です。 (技術的には、plain tableViewはグループ化されたtableViewのサブビューであり、グループ化されたtableViewと同じCGRectを使用しているため、背景は見えません)
空のグループ化されたtableViewをvoiceoverから「隠す」 、平らな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];
:
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;
無地のtableViewを追加します
であり、明らかな影響はない。
大変助かりました。ありがとう!
あなたは私はSDKの@property(アトミック)BOOL accessibilityElementsHidden NS_AVAILABLE_IOS(5_0)の新しい方法を参照するために忘れていますことを理解することが行われ、 – thndrkiss