From f4c1e5c78ee76ba56b0e728acafb0727bc3c0065 Mon Sep 17 00:00:00 2001 From: helinyu <2319979647@qq.com> Date: Fri, 2 Feb 2018 11:28:51 +0800 Subject: [PATCH] fix the bug of the demo about the UIVisualEffectView in YYTextAsyncExample.m file & YYTextEditExample.m file --- Demo/YYKitDemo/YYTextAsyncExample.m | 9 ++++++--- Demo/YYKitDemo/YYTextEditExample.m | 20 +++++++++++++------- YYKit/Base/UIKit/UIDevice+YYAdd.h | 4 ++++ YYKit/Base/UIKit/UIView+YYAdd.h | 8 ++++++++ YYKit/Base/UIKit/UIView+YYAdd.m | 10 ++++++++++ 5 files changed, 41 insertions(+), 10 deletions(-) diff --git a/Demo/YYKitDemo/YYTextAsyncExample.m b/Demo/YYKitDemo/YYTextAsyncExample.m index e0ef80bd..bb60fddc 100644 --- a/Demo/YYKitDemo/YYTextAsyncExample.m +++ b/Demo/YYKitDemo/YYTextAsyncExample.m @@ -125,7 +125,8 @@ - (void)viewDidLoad { YYFPSLabel *fps = [YYFPSLabel new]; fps.centerY = toolbar.height / 2; fps.left = 5; - [toolbar addSubview:fps]; +// [toolbar addSubview:fps]; + [toolbar visualEffectViewAddSubview:fps]; UILabel *label = [UILabel new]; label.backgroundColor = [UIColor clearColor]; @@ -134,7 +135,8 @@ - (void)viewDidLoad { [label sizeToFit]; label.centerY = toolbar.height / 2; label.left = fps.right + 10; - [toolbar addSubview:label]; +// [toolbar addSubview:label]; + [toolbar visualEffectViewAddSubview:label]; UISwitch *switcher = [UISwitch new]; [switcher sizeToFit]; @@ -147,7 +149,8 @@ - (void)viewDidLoad { if (!self) return; [self setAsync:switcher.isOn]; }]; - [toolbar addSubview:switcher]; +// [toolbar addSubview:switcher]; + [toolbar visualEffectViewAddSubview:switcher]; } - (void)setAsync:(BOOL)async { diff --git a/Demo/YYKitDemo/YYTextEditExample.m b/Demo/YYKitDemo/YYTextEditExample.m index 88fe82ec..961aa19a 100644 --- a/Demo/YYKitDemo/YYTextEditExample.m +++ b/Demo/YYKitDemo/YYTextEditExample.m @@ -9,6 +9,7 @@ #import "YYTextEditExample.h" #import "YYKit.h" #import "YYTextExampleHelper.h" +#import "UIView+YYAdd.h" @interface YYTextEditExample () @property (nonatomic, assign) YYTextView *textView; @@ -74,7 +75,8 @@ - (void)viewDidLoad { label.text = @"Vertical:"; label.size = CGSizeMake([label.text widthForFont:label.font] + 2, toolbar.height); label.left = 10; - [toolbar addSubview:label]; +// [toolbar addSubview:label]; + [toolbar visualEffectViewAddSubview:label]; _verticalSwitch = [UISwitch new]; [_verticalSwitch sizeToFit]; @@ -90,7 +92,8 @@ - (void)viewDidLoad { _self.exclusionSwitch.enabled = !switcher.isOn; _self.textView.verticalForm = switcher.isOn; /// Set vertical form }]; - [toolbar addSubview:_verticalSwitch]; +// [toolbar addSubview:_verticalSwitch]; + [toolbar visualEffectViewAddSubview:_verticalSwitch]; label = [UILabel new]; label.backgroundColor = [UIColor clearColor]; @@ -98,7 +101,8 @@ - (void)viewDidLoad { label.text = @"Debug:"; label.size = CGSizeMake([label.text widthForFont:label.font] + 2, toolbar.height); label.left = _verticalSwitch.right + 5; - [toolbar addSubview:label]; +// [toolbar addSubview:label]; + [toolbar visualEffectViewAddSubview:label]; _debugSwitch = [UISwitch new]; [_debugSwitch sizeToFit]; @@ -109,7 +113,8 @@ - (void)viewDidLoad { [_debugSwitch addBlockForControlEvents:UIControlEventValueChanged block:^(UISwitch *switcher) { [YYTextExampleHelper setDebug:switcher.isOn]; }]; - [toolbar addSubview:_debugSwitch]; +// [toolbar addSubview:_debugSwitch]; + [toolbar visualEffectViewAddSubview:_debugSwitch]; label = [UILabel new]; label.backgroundColor = [UIColor clearColor]; @@ -117,7 +122,8 @@ - (void)viewDidLoad { label.text = @"Exclusion:"; label.size = CGSizeMake([label.text widthForFont:label.font] + 2, toolbar.height); label.left = _debugSwitch.right + 5; - [toolbar addSubview:label]; +// [toolbar addSubview:label]; + [toolbar visualEffectViewAddSubview:label]; _exclusionSwitch = [UISwitch new]; [_exclusionSwitch sizeToFit]; @@ -127,8 +133,8 @@ - (void)viewDidLoad { [_exclusionSwitch addBlockForControlEvents:UIControlEventValueChanged block:^(UISwitch *switcher) { [_self setExclusionPathEnabled:switcher.isOn]; }]; - [toolbar addSubview:_exclusionSwitch]; - +// [toolbar addSubview:_exclusionSwitch]; + [toolbar visualEffectViewAddSubview:_exclusionSwitch]; [[YYTextKeyboardManager defaultManager] addObserver:self]; } diff --git a/YYKit/Base/UIKit/UIDevice+YYAdd.h b/YYKit/Base/UIKit/UIDevice+YYAdd.h index fa36071f..26fe855f 100644 --- a/YYKit/Base/UIKit/UIDevice+YYAdd.h +++ b/YYKit/Base/UIKit/UIDevice+YYAdd.h @@ -191,3 +191,7 @@ NS_ASSUME_NONNULL_END #ifndef kiOS9Later #define kiOS9Later (kSystemVersion >= 9) #endif + +#ifndef kiOS11Later +#define kiOS11Later (kSystemVersion >= 11) +#endif diff --git a/YYKit/Base/UIKit/UIView+YYAdd.h b/YYKit/Base/UIKit/UIView+YYAdd.h index 7b692f08..a727e8ce 100644 --- a/YYKit/Base/UIKit/UIView+YYAdd.h +++ b/YYKit/Base/UIKit/UIView+YYAdd.h @@ -100,6 +100,14 @@ NS_ASSUME_NONNULL_BEGIN */ - (CGRect)convertRect:(CGRect)rect fromViewOrWindow:(nullable UIView *)view; +/** + add a nomal view to the UIVisualEffectView + + @param subView : which view will add the parentView + @return void + */ +- (void)visualEffectViewAddSubview:(UIView *)subView; + @property (nonatomic) CGFloat left; ///< Shortcut for frame.origin.x. @property (nonatomic) CGFloat top; ///< Shortcut for frame.origin.y diff --git a/YYKit/Base/UIKit/UIView+YYAdd.m b/YYKit/Base/UIKit/UIView+YYAdd.m index 36f9e83c..9a7884d6 100644 --- a/YYKit/Base/UIKit/UIView+YYAdd.m +++ b/YYKit/Base/UIKit/UIView+YYAdd.m @@ -173,6 +173,16 @@ - (CGRect)convertRect:(CGRect)rect fromViewOrWindow:(UIView *)view { return rect; } +- (void)visualEffectViewAddSubview:(UIView *)subView { + if ([self isKindOfClass:[UIVisualEffectView class]] && [UIDevice currentDevice].systemVersion.floatValue >= 11.f) { + UIVisualEffectView *visualEffectView = (UIVisualEffectView *)self; + [visualEffectView.contentView addSubview:subView]; + } + else { + [self addSubview:subView]; + } +} + - (CGFloat)left { return self.frame.origin.x; }