2012-04-02 10 views
1

UIScrollView内にUILabelとUITextViewが存在する場合、UILabelとUITextViewがシャープであることを確認しようとしています。私はUIViewクラスの 'contentScaleFactor'プロパティに沿って来た、それは完全にカスタム図面ではうまくいくようだが、UITextViewとラベルはちょうど正しいcontentscaleで自分自身を再描画することを拒否する。UIScit要素のContentScaleFactorが壊れていますか?

http://pastebin.com/PBjhjMbR

多分これはテキストを描画する実際のビューは、これらのクラスのサブビューしていることによるものでしょうか?

答えて

1

すべてのサブビューでcontentScaleFactorを再帰的に設定する必要があります。また、高品質で表示するために設定した各ビューでsetNeedsDisplayを呼び出す必要があります。私はまた、UIImageViewで設定する価値がないことを発見しました。なぜなら、高品質でレンダリングされないため、バッキングレイヤーを大きくしてメモリを浪費することはないからです。

+0

これはAppleが許す方法ではありませんが、テキストビューのどこかに実際のテキストレイヤーを見つけるのは簡単ではありません。私はWWDCでバグレポートを提出するように頼んだが、手がかりもなかった。 – M0rph3v5

+0

遅れて申し訳ありませんが、上記の方法はAppleの技術者がWWDCでやったことです。私が使ったアプリはすでにアプリストアに入っているので、Appleは実際にそれを許可している(どうして彼らはパブリックなAPIなのだろう)。私が持っていた唯一の問題は、テキストフィールドが編集中(つまり、キーボードがアップしている間)に表示されます。何らかの理由で、何らかの理由で関連ビューのcontentScaleFactorをデフォルトに戻していると、その設定を適切に行うために後半に設定する方法がわかりませんでした。 –

+0

それは私の問題の全体的な点ですが、編集されていない状態です。私はちょうど正しいコンテンツスケールで自分の見解を示しています。編集状態が問題です。 – M0rph3v5

関連する問題