UIVisualEffectView - 视觉效果视图

是什么?

  • UIVisualEffectView 视觉效果视图
  • @interface UIVisualEffectView : UIView
  • 说白了,用来应用各种'特效'(模糊效果,鲜艳效果)的一个UIView.

有什么用?

  • 将一些复杂视觉效果(模糊或者鲜艳),展示出来的UIView.
  • 没有它,则无法将"视觉效果",展示出来.

怎么使用?

  • 根据指定的视觉效果创建新的视觉效果视图.
    - (instancetype)initWithEffect:(nullable UIVisualEffect *)effect
  • 使用编码器,初始化视觉效果视图.
    - (instancetype)initWithCoder:(NSCoder *)coder

有什么特点?

  • 受"视觉效果视图"影响得,是位于它后面的内容,或者直接添加到"视觉效果视图"的内容.
  • Do not add subviews directly to the visual effect view itself, instead add them to the -contentView.'
    不要直接将子视图添加到视觉效果视图本身,而是将它们添加到-contentView
    • 那么,什么情况叫做"将子视图添加到视觉效果视图"?
    UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"XXXX"]];
    ....
    UIVisualEffectView * effectView = [[UIVisualEffectView alloc] initWithEffect:blurEffect];
     //重点: 将imageView 添加到 effectView里,是不允许得.
    [effectView addSubview:imageView];
    
    • 解决方法: 可以将"将子视图添加到视觉效果视图的contentView里面"
      [effectView.contentView addSubview:imageView];
  • 视觉效果视图的层次结构分析.
    • "添加到视觉效果视图" 的层次分析. (如: "图片"直接就在"视觉效果视图"里面) [effectView.contentView addSubview:imageView];
    • 受"视觉效果视图"影响得,是位于它后面的内容 的层次分析. (如: "视觉效果视图"依赖在"图片"上. "视觉效果视图"发生改变,直接影响至图片)
      • [imageView addSubview:effectView]; //视觉效果视图包含在imageView里面.
      • [self.view addSubview:effectView];//视觉效果视图imageView是分别独立得.

你可能感兴趣的:(UIVisualEffectView - 视觉效果视图)