Voiceoverがオンのときにプロトタイプセルを読み込もうとすると問題が発生します。アプリがクラッシュし、エラーが発生するios 5プロトタイプセルとVoiceOverの問題
これはVoiceOverがオンの場合にのみ発生し、そうでない場合はアプリが正常に動作します。どんな助け?
Voiceoverがオンのときにプロトタイプセルを読み込もうとすると問題が発生します。アプリがクラッシュし、エラーが発生するios 5プロトタイプセルとVoiceOverの問題
これはVoiceOverがオンの場合にのみ発生し、そうでない場合はアプリが正常に動作します。どんな助け?
私は偶然この権利を得ているのかどうかはわかりませんが、これは私にとってはうまくいっています。 UITableViewDataSource
で:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[...]
UITableViewCell *standardCell;
if (UIAccessibilityIsVoiceOverRunning()) {
standardCell = [tableView dequeueReusableCellWithIdentifier:@"VO Cell"];
} else {
standardCell = [tableView dequeueReusableCellWithIdentifier:@"Regular Cell"];
}
//Configure the cell
[...]
return standardCell;
}
私はそれがVoiceOverのは、パフォーマンス上の理由でオフになっている場合のiOSは、アクセシビリティプロパティなしで細胞をキャッシュする場合であると信じています。そのため、使用する既定の識別子は、これらのプロパティを持たないキャッシュされたセルに関連している可能性があります。 VoiceOverがオンになっていて、iOSがこれらのセルをデキューしようとすると、そこにプロパティが見つからず、ブレークしません。異なる識別子を持つことで、VOがオンのときにiOSに新しいセルをキャッシュさせるように強制します。
もう一度、これは私がとしていることを前提にしていますが、このようにセルをデキューするとこの問題は発生しません。しかし、あなたが言及した方法でそれらをデキューする場合は、エラーが発生する可能性があることに注意する必要があります:
識別子が.xibファイルまたはストーリーボードに設定されているセルをデキューする場合は、下の画像のように、VO Reuse Identifierを使って別のプロトタイプセルを設定する必要があります。
他の誰かがこの問題に問題がある場合は、この問題についてappleにバグを提出しました。 –
私は同じ問題があります!私は今日、アクセシビリティのヒントやものを私のアプリケーションに追加し始めました。それは本当に吸う。レーダーIDをここに追加して、私がバグを複製できるようにしてください。私はまだ5.1ベータ2でそのバグを取得します! –
@ChristianBeerがあなたのバグをOpen Radarで見つけ、それをdupしました。 (rdar:// 10763569)ありがとう。 – edelaney05