美文网首页
ios毛玻璃效果

ios毛玻璃效果

作者: swweaper5 | 来源:发表于2017-05-17 23:58 被阅读125次

    ios实现磨玻璃在各个系统上都有所不同,新系统总会有比旧系统更好的方式去实现毛玻璃

    iOS 6及以下系统,可以生成一张模糊效果的图片实现
    //生成一张毛玻璃图片

    • (UIImage)blur:(UIImage)theImage

    {

    CIContext *context = [CIContext contextWithOptions:nil];
    
    CIImage *inputImage = [CIImage imageWithCGImage:theImage.CGImage];
    
    CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
    
    [filter setValue:inputImage forKey:kCIInputImageKey];
    
    [filter setValue:[NSNumber numberWithFloat:6.0f] forKey:@"inputRadius"];//模糊度
    
    CIImage *result = [filter valueForKey:kCIOutputImageKey];
    
    CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
    
    UIImage *returnImage = [UIImage imageWithCGImage:cgImage];
    
    CGImageRelease(cgImage);
    
    return returnImage;
    

    }

    iOS 7可以用uitoolbar实现毛玻璃效果,代码如下:

    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:self.view.bounds];
    
    toolBar.barStyle = UIBarStyleBlackTranslucent;
    
    [toolBar setBackgroundImage:self.image.image forToolbarPosition:UIBarPositionBottom barMetrics:UIBarMetricsDefaultPrompt];
    
     [self.view addSubview:toolBar];
    

    然而iOS 8有了更好的api UIVisualEffectView

    UIVisualEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
    
    UIVisualEffectView *visualEffectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
    
    visualEffectView.frame = self.image.bounds;
    
    visualEffectView.alpha = 0.7;//模糊程度
    
            [self.image addSubview:visualEffectView];

    相关文章

      网友评论

          本文标题:ios毛玻璃效果

          本文链接:https://www.haomeiwen.com/subject/qqvjxxtx.html