2014-03-18 41 views
-1

我有一個UIView部分覆蓋了一些內容,我想要像iOS通知中心一樣應用模糊效果。iOS如何創建一個模糊內容下的UIView

我不是在尋找一種方式來對UIImage應用模糊,但UIView與在它之下的其他內容(UIViewUIButton,ECC)。

enter image description here

想法? 謝謝。

+0

這個班級應該提供你正在尋找的東西: https://github.com/JagCesar/iOS-blur –

回答

-3
myView.backgroundColor = [UIColor clearColor]; 
UIToolbar* bgToolbar = [[UIToolbar alloc] initWithFrame:myView.frame]; 
bgToolbar.barStyle = UIBarStyleDefault; 
[myView.superview insertSubview:bgToolbar belowSubview:myView]; 

剛剛過去的從對方的回答怎麼過我在項目中使用的工具欄和完美的作品,我使用的α= 0.98 enter image description here

+2

這不會提供模糊的效果。 –

-1

首先改變的UIView到UIImage的。 您可以將以下內容用作UIView的類別。

@implementation UIView (ConvertToUIImage) 

- (UIImage *)asImage { 
    NSAssert(self, @"Do not use this method on nil instance of UIView."); 
    if (!self) return 0; 

    UIGraphicsBeginImageContextWithOptions(self.frame.size, YES, 0); 
    [self drawViewHierarchyInRect:self.frame afterScreenUpdates:NO]; 
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    NSAssert(image, @"Image must not be nil at this point."); 
    return image; 
} 

@end 

接下來你需要模糊的UIImage,這裏有一個相關的問題Creating a blur effect in iOS7

最後,使用的UIImage作爲背景。

+0

我有一個'UIView',我需要'UIView',正如我在問題中所寫的那樣,我不是在尋找一種將模糊應用於'UIImage'的方法。 – Fry

+0

看看你發佈的截圖。主屏幕可以被視爲viewA,通知中心被視爲viewB。這個想法是在顯示viewB之前創建viewA的UIImage表示。然後模糊UIImage,最後添加它作爲viewB的背景。現在,如果您呈現viewB,它將在viewA頂部顯示爲透明,viewA變得模糊 - 就像在發佈的屏幕截圖中一樣。詳細內容在Matt Neuburg編寫的iOS 7編程書以及其他類似的技巧中進行了闡述。我誤解了你的要求嗎? –