36

iOS7のコントロールセンターに似たコントローラーを作ろうとしています。WWDC セッション #226 から、さまざまな効果でぼやけた画像を取得する方法を学びました

UIGraphicsBeginImageContextWithOptions(image.size, NULL, 0);

[view drawViewHierarchyInRect:rect];

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

lightImage = [newImage applyLightEffect];

つまり、画像をキャプチャ (スクリーンショットを作成) し、ぼかし効果を実行して、このぼかした画像をニーズに使用するだけです。

しかし、動的コンテンツの上でコントロール センターを開くと、コントロール センターのぼやけた背景がコンテンツと同様に変化していることに気付くでしょう。

この動作を再現する方法を知っている人はいますか?

私がそれを見る唯一の方法は、コンテンツをキャプチャし、一定の間隔(0.5 秒など)でぼかし効果を出すことです。しかし、それは冗長に見えます。

4

6 に答える 6

13

iOS8 では、 UIVisualEffectクラスを使用してビューにぼかし効果を実装できます。

于 2014-06-05T12:46:25.533 に答える
8

以下のコードを使用して、ビューにぼかし効果を適用できます。

UIVisualEffect *blurEffect;
blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

UIVisualEffectView *visualEffectView;
visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];

visualEffectView.frame = MYview.bounds;
[MYview addSubview:visualEffectView];
于 2015-01-05T11:30:28.140 に答える
1

ストーリーボードから UIVisualEffect を使用できます。

Visual Effect With Blur をストーリーボードにドラッグします。背景色のアルファを設定することで、目的の効果を得ることができます。サブビューは、視覚効果ビューのビューに追加する必要があり、背景のぼかしの影響を受けません。

鮮やかな効果は、上記の表示オプションで選択する必要があります。

画像を参照してください:

于 2014-12-12T09:11:06.847 に答える
0

iOS 7 を実行している古いデバイスでは、ナビゲーション バーを使用してぼかしを提供することはできません。

于 2014-04-06T13:29:15.210 に答える