将自定义视图添加到窗口并模糊背景视图,不允许单击背景视图

时间:2013-01-29 08:49:59

标签: iphone ios

你好,我自定义一个290 * 280的视图就像一个对话框,一切都还可以,但是我的自定义视图背后的其他视图可以点击,我希望其他视图可以点击我的customView弹出时,我也想要窗口在我的自定义视图后面是模糊的。

我的代码是:

#import <UIKit/UIKit.h>

@interface RecordView :UIView


@property (strong, nonatomic) IBOutlet UIButton *confirmBu;
@property (strong, nonatomic) IBOutlet UIButton *playBu;
@property (strong, nonatomic) IBOutlet UIButton *recrodBu;
@property (strong, nonatomic) IBOutlet UIButton *closeBu;


@property (strong, nonatomic) IBOutlet UIImageView *backgroundImageview;
@property (strong, nonatomic) IBOutlet UIImageView *showImageview;

-(void)setViewStyle;
@end

 #import "RecordView.h"

    @interface RecordView ()

    @end

    @implementation RecordView

    @synthesize confirmBu;
    @synthesize playBu;
    @synthesize recrodBu;
    @synthesize closeBu;



    @synthesize backgroundImageview;
    @synthesize showImageview;



    -(void)setViewStyle{

         self.frame=CGRectMake(15,100, 290, 280);
         self.backgroundColor=[UIColor clearColor];

        backgroundImageview.layer.masksToBounds=YES;
        backgroundImageview.layer.cornerRadius=15.0;
        backgroundImageview.layer.borderWidth=4.0;
        backgroundImageview.layer.borderColor=[[UIColor lightGrayColor] CGColor];

    }

    @end

self.recordDialog= [[[NSBundle mainBundle] loadNibNamed:@"RecordView" owner:self options:nil]lastObject];
                [self.recordDialog setViewStyle];
  [delegate.window addSubview:self.recordDialog];

2 个答案:

答案 0 :(得分:1)

另一种方法是以编程方式创建当前屏幕的屏幕截图。使用类似https://github.com/tomsoft1/StackBluriOS的内容模糊屏幕截图,然后将该图像设置为背景。当您单击关闭按钮时,您只需要再次隐藏背景图像。

答案 1 :(得分:0)

您可以创建半透明图像,这将产生模糊效果。显示第一张图像,然后在图像上显示290 * 280视图。图像会阻止点击背景控制,你会看到模糊的外观。