2012-01-30 10 views
6

私はUITableViewControllerを持っていますが、セクションヘッダーをプレーンテキストのようにカスタマイズしようとしています。私は、カスタムヘッダービュー(詳細は後述)にサブビューを追加すると、VoiceOverヘッダーナビゲーションが中断されることがわかりました。カスタムviewForHeaderInSectionにサブビューを追加するとVoiceOverナビゲーションが中断されます

たとえば、次の3つのヘッダーを持つ表があるとします。Header1、Header2、Header3。私は見出しでナビゲートするためにナレーションローターを切り替えることができますし、意図したとおりにすべての作品viewForHeaderInSectionメソッドのカスタム実装なし

次のようにviewForHeaderInSectionメソッドを実装すると、Header1からHeader2に移動してHeader2に戻ることができますが、ボイスオーバーではすべてのヘッダーが失われます(「ヘッダーが見つかりません」)。

headerViewにheaderLabelをサブビューとして追加すると、問題が発生することがわかりました。私は隠れたアクセシビリティ要素に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がこれに対応している理由は何ですか?

ありがとうございました。

+0

、それは素晴らしいことだ – romrom

+0

カスタムセクションのヘッダーを使用しながら、アクセシビリティを改善したい開発者のリストに私を追加します。 –

答えて

0

これは元の問題の答えにはなりませんが、同様の問題を回避しました。

私は、セクションヘッダのカスタムUIViewのを持っていた、そして配列にこれらのプールを保持し、occationallyそれらを再利用します。これはVoiceOveryを完全に混乱させ、前進または後退することは必ずしも期待通りに前または次のセルを選択するとは限らない。 viewForHeaderInSectionは:私はのtableView新しいUIViewのたびに作成するに変更する場合

はしかし、呼ばれた、VoiceOverのこのナビゲーション混乱を停止し、すべてがうまくいきました。 私のヘッダービューはアクセス可能で(isAccessibleElement)、ラベルセットを持っています。誰かがそのテーマに関する最新情報を持っていた場合

私はかなり同じ問題に直面しています
関連する問題