UIVisualEffectView - 视觉效果视图
2020-05-06 本文已影响0人
js_huh
是什么?
-
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是分别独立得.
-
-
"添加到视觉效果视图" 的层次分析. (如: "图片"直接就在"视觉效果视图"里面)