zoukankan      html  css  js  c++  java
  • iOS8模糊效果UIVisualEffectView的使用

    iOS8模糊效果UIVisualEffectView的使用

    效果:

    源码:

    //
    //  ViewController.m
    //  EffectView
    //
    //  Created by XianMingYou on 15/3/14.
    //  Copyright (c) 2015年 XianMingYou. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    @property (nonatomic, strong) UIVisualEffectView *effectView;
    @property (nonatomic, strong) UIVisualEffectView *vibrancyEffectView;
    @property (nonatomic, strong) UIScrollView       *scrollView;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // 添加测试用view
        [self.view addSubview:self.scrollView];
        
        // 添加模糊用view
        [self.view addSubview:self.effectView];
        
        // 添加额外的view(用contentView)
        [self.effectView.contentView addSubview:self.vibrancyEffectView];
    }
    
    @synthesize scrollView = _scrollView;
    - (UIScrollView *)scrollView {
        if (_scrollView == nil) {
            _scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
            _scrollView.showsHorizontalScrollIndicator = NO;
            _scrollView.showsVerticalScrollIndicator   = NO;
            _scrollView.bounces                        = NO;
            UIImageView *imageView  = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"color.jpg"]];
            _scrollView.contentSize = imageView.image.size;
            [_scrollView addSubview:imageView];
        }
        
        return _scrollView;
    }
    
    @synthesize effectView = _effectView;
    - (UIVisualEffectView *)effectView {
        if (_effectView == nil) {
            // 添加模糊效果
            _effectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
            _effectView.userInteractionEnabled = NO;
            _effectView.frame                  = CGRectMake(0, 0, 320, 200);
            _effectView.center                 = self.view.center;
        }
        
        return _effectView;
    }
    
    @synthesize vibrancyEffectView = _vibrancyEffectView;
    - (UIVisualEffectView *)vibrancyEffectView {
        if (_vibrancyEffectView == nil) {
            // 初始化文本
            UILabel *label      = [[UILabel alloc] initWithFrame:self.effectView.bounds];
            label.text          = @"YouXianMing";
            label.font          = [UIFont systemFontOfSize:40.f];
            label.textAlignment = NSTextAlignmentCenter;
            
            // 需要与作用的effectView的效果一致
            _vibrancyEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIVibrancyEffect effectForBlurEffect:(UIBlurEffect *)self.effectView.effect]];
            _vibrancyEffectView.frame = self.effectView.bounds;
            
            // 注意,是用的contentView添加label
            [self.vibrancyEffectView.contentView addSubview:label];
        }
        
        return _vibrancyEffectView;
    }
    
    @end

    测试用图片:

  • 相关阅读:
    福州KTV
    MSN登陆不上:微软谴责中国的“技术问题”
    DB2 存储过程开发最佳实践
    在DB2存储过程中返回一个数据集
    Host is not allowed to connect to this MySQL server 解决方案
    CentOS安装中文支持
    ImportError: libpq.so.5: cannot open shared object file: No such file or directory
    CentOS 终端显示中文异常解决办法
    pytestDemo
    python 获取当前运行的类名函数名
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4337052.html
Copyright © 2011-2022 走看看