11

iOS 7 以降、UIAlertViews の表示に一種の描画遅延があることに気付きました。画面が暗くなり、アラート ビューの実際のフレームが表示される前に UIAlertView のテキストがほんの一瞬だけ画面に表示されます。

アプリケーションの plist ファイルで「Renders with edge antialiasing」フラグが YES に設定されているために問題が発生することを突き止めました。これをオフにすると問題は解決します(ただし、回転したビューにぎざぎざがあります。これは、最初にそのフラグを使用して解決していたものです)。

ケーキを食べて食べる方法を知っている人はいますか? つまり、エッジのアンチエイリアシングとスムーズな UIAlertViews があります。

編集:大まかに言えば、「UIViewEdgeAntialiasing」をオンザフライで切り替えることができるかのようです。または、アンチエイリアシングを使用して UIView を直接回転させる方法がある場合。これらのいずれかが可能ですか?

4

1 に答える 1

11

「エッジアンチエイリアシングでレンダリング」は非常に高価です!注意して使用してください。

代わりに、この小さなトリックを使用してください。

    view.layer.borderWidth = 1;
    view.layer.borderColor = [UIColor clearColor].CGColor;
    view.layer.rasterizationScale = [UIScreen mainScreen].scale;
    view.layer.shouldRasterize = YES;
于 2013-12-12T17:39:29.030 に答える