From b01909f3ddf78ec1784b9f25f293abaa6baf6e69 Mon Sep 17 00:00:00 2001 From: shenruijie_vendor Date: Fri, 4 Oct 2019 12:39:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=95=B02019-10-04=2012:36:31?= =?UTF-8?q?=F0=9F=95=B0=20=E6=94=B9=E8=BF=9BalertVew=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E7=AD=96=E7=95=A5,=20=E4=BD=BF=E5=BE=97=E6=9B=B4=E5=82=BB?= =?UTF-8?q?=E7=93=9C=E5=8C=96=E5=92=8C=E7=81=B5=E6=B4=BB,=20=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5show=E5=9C=A8=E4=BB=BB=E4=BD=95=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=98=AF=E4=B8=AD=E9=97=B4,=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8Dtransform=E6=B2=A1=E6=9C=89=E8=BF=98=E5=8E=9F=E4=BC=9A?= =?UTF-8?q?=E6=97=A0=E9=99=90=E7=BC=A9=E5=B0=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project.pbxproj | 4 +- .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++ .../IDEFindNavigatorScopes.plist | 5 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 39805 bytes .../xcschemes/xcschememanagement.plist | 14 +++++ .../TYAlertController/TYShowAlertView.h | 29 ++++++++-- .../TYAlertController/TYShowAlertView.m | 51 ++++++++++++------ .../TYAlertController/UIView+TYAlertView.h | 4 +- .../TYAlertController/UIView+TYAlertView.m | 8 +-- TYAlertControllerDemo/ViewController.m | 8 ++- 10 files changed, 101 insertions(+), 30 deletions(-) create mode 100644 TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/IDEFindNavigatorScopes.plist create mode 100644 TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 TYAlertControllerDemo.xcodeproj/xcuserdata/shenruijie_vendor.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TYAlertControllerDemo.xcodeproj/project.pbxproj b/TYAlertControllerDemo.xcodeproj/project.pbxproj index ebc98fe..496b767 100644 --- a/TYAlertControllerDemo.xcodeproj/project.pbxproj +++ b/TYAlertControllerDemo.xcodeproj/project.pbxproj @@ -285,7 +285,7 @@ TargetAttributes = { D358541D1B9532D700B5FA1F = { CreatedOnToolsVersion = 6.4; - DevelopmentTeam = ZW52Q3KXX4; + DevelopmentTeam = YVL7699HA5; }; D35854361B9532D700B5FA1F = { CreatedOnToolsVersion = 6.4; @@ -298,6 +298,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -488,6 +489,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = YVL7699HA5; INFOPLIST_FILE = TYAlertControllerDemo/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; diff --git a/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/IDEFindNavigatorScopes.plist b/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/IDEFindNavigatorScopes.plist new file mode 100644 index 0000000..5dd5da8 --- /dev/null +++ b/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/IDEFindNavigatorScopes.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/UserInterfaceState.xcuserstate b/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie_vendor.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..a16a72eac48455680fdb322dd8d47c70dd446a0c GIT binary patch literal 39805 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 literal 0 HcmV?d00001 diff --git a/TYAlertControllerDemo.xcodeproj/xcuserdata/shenruijie_vendor.xcuserdatad/xcschemes/xcschememanagement.plist b/TYAlertControllerDemo.xcodeproj/xcuserdata/shenruijie_vendor.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..7039510 --- /dev/null +++ b/TYAlertControllerDemo.xcodeproj/xcuserdata/shenruijie_vendor.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + TYAlertControllerDemo.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h index 11e185e..fbc9bfb 100644 --- a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h +++ b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h @@ -14,16 +14,37 @@ @property (nonatomic, strong) UIView *backgroundView; @property (nonatomic, assign) BOOL backgoundTapDismissEnable; // default NO -@property (nonatomic, assign) CGFloat alertViewOriginY; // default center Y -@property (nonatomic, assign) CGFloat alertViewEdging; // default 15 + +/** 2019-10-04 12:13:56 + 取值优先级为 ( 数字越小, 优先级越高 ) + 1. 主动赋值了alertViewWidth或alertViewHeight属性,则以_alertViewWidth为准 + 2. alertView.size != {0 , 0} , 则以 alertView.size 为准 + 3. superView.width - 2 * 15 + */ +@property (nonatomic, assign) CGFloat alertViewWidth; + +/** 2019-10-04 12:22:41 + 取值优先级为 ( 数字越小, 优先级越高 ) + 1. 主动赋值了alertViewWidth或alertViewHeight属性,则以_alertViewHeight为准 + 2. alertView.size != {0 , 0} , 则以 alertView.size 为准 + 3. 200 +*/ +@property (nonatomic, assign) CGFloat alertViewHeight; + +/** 2019-10-04 12:24:03 + 1. 主动赋值了alertViewCenter,则以_alertViewCenter为准 + 2. alertView.size != {0 , 0}, 则视为想要使用frame进行约束,赋值CGPointMake(CGRectGetMidX(_alertView.frame), CGRectGetMidY(_alertView.frame)) + 3.kCurrentWindow.center + */ +@property (nonatomic, assign) CGPoint alertViewCenter; +(void)showAlertViewWithView:(UIView *)alertView; + (void)showAlertViewWithView:(UIView *)alertView backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable; -+(void)showAlertViewWithView:(UIView *)alertView originY:(CGFloat)originY; ++(void)showAlertViewWithView:(UIView *)alertView center:(CGPoint)center; -+(void)showAlertViewWithView:(UIView *)alertView originY:(CGFloat)originY backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable; ++ (void)showAlertViewWithView:(UIView *)alertView center:(CGPoint)center backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable; + (instancetype)alertViewWithView:(UIView *)alertView; diff --git a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m index 98989c1..622940f 100644 --- a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m +++ b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m @@ -25,7 +25,6 @@ - (instancetype)initWithFrame:(CGRect)frame self.backgroundColor = [UIColor clearColor]; _backgoundTapDismissEnable = NO; - _alertViewEdging = 15; [self addBackgroundView]; @@ -61,16 +60,16 @@ + (void)showAlertViewWithView:(UIView *)alertView backgoundTapDismissEnable:(BOO [showTipView show]; } -+ (void)showAlertViewWithView:(UIView *)alertView originY:(CGFloat)originY ++ (void)showAlertViewWithView:(UIView *)alertView center:(CGPoint)center { [self showAlertViewWithView:alertView - originY:originY backgoundTapDismissEnable:NO]; + center:center backgoundTapDismissEnable:NO]; } -+ (void)showAlertViewWithView:(UIView *)alertView originY:(CGFloat)originY backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable ++ (void)showAlertViewWithView:(UIView *)alertView center:(CGPoint)center backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable { TYShowAlertView *showTipView = [self alertViewWithView:alertView]; - showTipView.alertViewOriginY = originY; + showTipView.alertViewCenter = center; showTipView.backgoundTapDismissEnable = backgoundTapDismissEnable; [showTipView show]; } @@ -114,34 +113,51 @@ - (void)didMoveToSuperview - (void)layoutAlertView { _alertView.translatesAutoresizingMaskIntoConstraints = NO; - // center X - [self addConstraintCenterXToView:_alertView centerYToView:nil]; // width, height if (!CGSizeEqualToSize(_alertView.frame.size,CGSizeZero)) { - [_alertView addConstraintWidth:CGRectGetWidth(_alertView.frame) height:CGRectGetHeight(_alertView.frame)]; + /**2019-10-04 12:10:15 如果没有人为设置_alertViewCenter, 则取frame的对应的center*/ + if (CGPointEqualToPoint(_alertViewCenter, CGPointZero)) { + _alertViewCenter = CGPointMake(CGRectGetMidX(_alertView.frame), CGRectGetMidY(_alertView.frame)); + } + /**2019-10-04 12:10:15 如果没有人为设置_alertViewWidth或者_alertViewHeight, 则从frame中取*/ + if (!(_alertViewWidth || _alertViewHeight)) { + _alertViewWidth = _alertView.frame.size.width; + _alertViewHeight = _alertView.frame.size.height; + } + + [_alertView addConstraintWidth:_alertViewWidth height:_alertViewHeight]; }else { BOOL findAlertViewWidthConstraint = NO; + BOOL findAlertViewHeightConstraint = NO; for (NSLayoutConstraint *constraint in _alertView.constraints) { if (constraint.firstAttribute == NSLayoutAttributeWidth) { findAlertViewWidthConstraint = YES; - break; + }else if (constraint.firstAttribute == NSLayoutAttributeHeight){ + findAlertViewHeightConstraint = YES; } } if (!findAlertViewWidthConstraint) { - [_alertView addConstraintWidth:CGRectGetWidth(self.superview.frame)-2*_alertViewEdging height:0]; + if (!(_alertViewWidth || _alertViewHeight)) { + _alertViewWidth = CGRectGetWidth(self.superview.frame)-2*15; + } + [_alertView addConstraintWidth:_alertViewWidth height:0]; } + + if (!findAlertViewHeightConstraint) { + if (!(_alertViewWidth || _alertViewHeight)) { + _alertViewHeight = 200; + } + [_alertView addConstraintWidth:0 height:_alertViewHeight]; + } } - // topY - NSLayoutConstraint *alertViewCenterYConstraint = [self addConstraintCenterYToView:_alertView constant:0]; - - if (_alertViewOriginY > 0) { - [_alertView layoutIfNeeded]; - alertViewCenterYConstraint.constant = _alertViewOriginY - (CGRectGetHeight(self.superview.frame) - CGRectGetHeight(_alertView.frame))/2; - } + /**2019-10-04 12:11:52 center X & center Y*/ + [self addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:_alertView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:-_alertViewCenter.x]]; + [self addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual + toItem:_alertView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:-_alertViewCenter.y]]; } #pragma mark - add Gesture @@ -183,6 +199,7 @@ - (void)hide _alertView.transform = CGAffineTransformScale(_alertView.transform,0.1,0.1); self.alpha = 0; } completion:^(BOOL finished) { + _alertView.transform = CGAffineTransformIdentity; [self removeFromSuperview]; }]; } diff --git a/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.h b/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.h index 5907ddb..76463e1 100644 --- a/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.h +++ b/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.h @@ -38,9 +38,9 @@ // backgoundTapDismissEnable default NO - (void)showInWindowWithBackgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable; -- (void)showInWindowWithOriginY:(CGFloat)OriginY; +- (void)showInWindowWithCenter:(CGPoint)center; -- (void)showInWindowWithOriginY:(CGFloat)OriginY backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable; +- (void)showInWindowWithCenter:(CGPoint)center backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable; #pragma mark - hide diff --git a/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.m b/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.m index f8895ed..fd8e0f2 100644 --- a/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.m +++ b/TYAlertControllerDemo/TYAlertController/UIView+TYAlertView.m @@ -47,17 +47,17 @@ - (void)showInWindowWithBackgoundTapDismissEnable:(BOOL)backgoundTapDismissEnabl [TYShowAlertView showAlertViewWithView:self backgoundTapDismissEnable:backgoundTapDismissEnable]; } -- (void)showInWindowWithOriginY:(CGFloat)OriginY +- (void)showInWindowWithCenter:(CGPoint)center { - [self showInWindowWithOriginY:OriginY backgoundTapDismissEnable:NO]; + [self showInWindowWithCenter:center backgoundTapDismissEnable:NO]; } -- (void)showInWindowWithOriginY:(CGFloat)OriginY backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable +- (void)showInWindowWithCenter:(CGPoint)center backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable { if (self.superview) { [self removeFromSuperview]; } - [TYShowAlertView showAlertViewWithView:self originY:OriginY backgoundTapDismissEnable:backgoundTapDismissEnable]; + [TYShowAlertView showAlertViewWithView:self center:center backgoundTapDismissEnable:backgoundTapDismissEnable]; } - (void)hideInWindow diff --git a/TYAlertControllerDemo/ViewController.m b/TYAlertControllerDemo/ViewController.m index 39182f6..260aca3 100644 --- a/TYAlertControllerDemo/ViewController.m +++ b/TYAlertControllerDemo/ViewController.m @@ -15,6 +15,10 @@ #import "SettingModelView.h" #import "ShareView.h" +#define kScreenWidth [UIScreen mainScreen].bounds.size.width +#define kScreenHeight [UIScreen mainScreen].bounds.size.height +#define kCurrentWindowCenter [UIApplication sharedApplication].keyWindow.center + @interface ViewController () @end @@ -158,7 +162,7 @@ - (IBAction)showAlertViewInWindowAction:(id)sender { }]]; // first way to show ,use UIView Category - [alertView showInWindowWithOriginY:200 backgoundTapDismissEnable:YES]; + [alertView showInWindowWithCenter:kCurrentWindowCenter backgoundTapDismissEnable:YES]; // second way to show //[TYShowAlertView showAlertViewWithView:alertView originY:200 backgoundTapDismissEnable:YES]; @@ -168,7 +172,7 @@ - (IBAction)customViewInWindowAction:(id)sender { ShareView *shareView = [ShareView createViewFromNib]; // use UIView Category - [shareView showInWindow]; + [shareView showInWindowWithCenter:CGPointMake(kScreenWidth / 2.0, 380)]; } - (void)didReceiveMemoryWarning { From 6aeb298d41231369e5074d7315cf8b2992f4e977 Mon Sep 17 00:00:00 2001 From: shenguanjiejie <835166018@qq.com> Date: Fri, 4 Oct 2019 13:31:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=95=B02019-10-04=2013:31:07?= =?UTF-8?q?=F0=9F=95=B0=20=E6=94=B9=E8=BF=9BalertVew=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E7=AD=96=E7=95=A5,=20=E4=BD=BF=E5=BE=97=E6=9B=B4=E5=82=BB?= =?UTF-8?q?=E7=93=9C=E5=8C=96=E5=92=8C=E7=81=B5=E6=B4=BB,=20=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5show=E5=9C=A8=E4=BB=BB=E4=BD=95=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E6=98=AF=E4=B8=AD=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 0 -> 13255 bytes .../xcschemes/xcschememanagement.plist | 14 ++++ .../TYAlertController/TYShowAlertView.h | 15 ++-- .../TYAlertController/TYShowAlertView.m | 78 +++++++++--------- 4 files changed, 62 insertions(+), 45 deletions(-) create mode 100644 TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 TYAlertControllerDemo.xcodeproj/xcuserdata/shenruijie.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie.xcuserdatad/UserInterfaceState.xcuserstate b/TYAlertControllerDemo.xcodeproj/project.xcworkspace/xcuserdata/shenruijie.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..fcd1b2993e048f8176163c576743b22291260002 GIT binary patch literal 13255 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 + + + + SchemeUserState + + TYAlertControllerDemo.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h index fbc9bfb..2329bd4 100644 --- a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h +++ b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.h @@ -15,19 +15,22 @@ @property (nonatomic, assign) BOOL backgoundTapDismissEnable; // default NO + /** 2019-10-04 12:13:56 取值优先级为 ( 数字越小, 优先级越高 ) - 1. 主动赋值了alertViewWidth或alertViewHeight属性,则以_alertViewWidth为准 - 2. alertView.size != {0 , 0} , 则以 alertView.size 为准 - 3. superView.width - 2 * 15 + 1. NSLayoutAttributeWidth, 如果有宽度layout,则以layout为准 + 2. 主动赋值了alertViewWidth,则以_alertViewWidth为准 + 3. alertView.size != {0 , 0} , 则以 alertView.size 为准 + 4. superView.width - 2 * 15 */ @property (nonatomic, assign) CGFloat alertViewWidth; /** 2019-10-04 12:22:41 取值优先级为 ( 数字越小, 优先级越高 ) - 1. 主动赋值了alertViewWidth或alertViewHeight属性,则以_alertViewHeight为准 - 2. alertView.size != {0 , 0} , 则以 alertView.size 为准 - 3. 200 + 1. NSLayoutAttributeHeight, 如果有宽度layout,则以layout为准 + 2. 主动赋值了alertViewHeight属性,则以_alertViewHeight为准 + 3. alertView.size != {0 , 0} , 则以 alertView.size 为准 + 4. 200 */ @property (nonatomic, assign) CGFloat alertViewHeight; diff --git a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m index 622940f..08900a9 100644 --- a/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m +++ b/TYAlertControllerDemo/TYAlertController/TYShowAlertView.m @@ -114,50 +114,50 @@ - (void)layoutAlertView { _alertView.translatesAutoresizingMaskIntoConstraints = NO; - // width, height - if (!CGSizeEqualToSize(_alertView.frame.size,CGSizeZero)) { - /**2019-10-04 12:10:15 如果没有人为设置_alertViewCenter, 则取frame的对应的center*/ - if (CGPointEqualToPoint(_alertViewCenter, CGPointZero)) { - _alertViewCenter = CGPointMake(CGRectGetMidX(_alertView.frame), CGRectGetMidY(_alertView.frame)); - } - - /**2019-10-04 12:10:15 如果没有人为设置_alertViewWidth或者_alertViewHeight, 则从frame中取*/ - if (!(_alertViewWidth || _alertViewHeight)) { - _alertViewWidth = _alertView.frame.size.width; - _alertViewHeight = _alertView.frame.size.height; - } - - [_alertView addConstraintWidth:_alertViewWidth height:_alertViewHeight]; - }else { - BOOL findAlertViewWidthConstraint = NO; - BOOL findAlertViewHeightConstraint = NO; - for (NSLayoutConstraint *constraint in _alertView.constraints) { - if (constraint.firstAttribute == NSLayoutAttributeWidth) { - findAlertViewWidthConstraint = YES; - }else if (constraint.firstAttribute == NSLayoutAttributeHeight){ - findAlertViewHeightConstraint = YES; - } - } - - if (!findAlertViewWidthConstraint) { - if (!(_alertViewWidth || _alertViewHeight)) { - _alertViewWidth = CGRectGetWidth(self.superview.frame)-2*15; - } - [_alertView addConstraintWidth:_alertViewWidth height:0]; - } - - if (!findAlertViewHeightConstraint) { - if (!(_alertViewWidth || _alertViewHeight)) { - _alertViewHeight = 200; - } - [_alertView addConstraintWidth:0 height:_alertViewHeight]; - } + BOOL findAlertViewWidthConstraint = NO; + BOOL findAlertViewHeightConstraint = NO; + BOOL hasSetFrame = !CGSizeEqualToSize(_alertView.frame.size,CGSizeZero); + + /**2019-10-04 12:10:15 如果没有人为设置_alertViewCenter, 则取frame的对应的center*/ + if (CGPointEqualToPoint(_alertViewCenter, CGPointZero) && hasSetFrame) { + _alertViewCenter = CGPointMake(CGRectGetMidX(_alertView.frame), CGRectGetMidY(_alertView.frame)); } - /**2019-10-04 12:11:52 center X & center Y*/ + /**2019-10-04 12:11:52 alertViewCenter*/ [self addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:_alertView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:-_alertViewCenter.x]]; [self addConstraint:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:_alertView attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:-_alertViewCenter.y]]; + + /**2019-10-04 13:17:47 alertViewWidth & _alertViewHeight*/ + for (NSLayoutConstraint *constraint in _alertView.constraints) { + if (constraint.firstAttribute == NSLayoutAttributeWidth) { + findAlertViewWidthConstraint = YES; + _alertViewWidth = constraint.constant; + }else if (constraint.firstAttribute == NSLayoutAttributeHeight){ + findAlertViewHeightConstraint = YES; + _alertViewHeight = constraint.constant; + } + } + + if (!findAlertViewWidthConstraint && !_alertViewWidth) { + /**2019-10-04 12:10:15 如果没有人为设置_alertViewWidth, 则从frame中取*/ + if (hasSetFrame) { + _alertViewWidth = _alertView.frame.size.width; + }else{ + _alertViewWidth = CGRectGetWidth(self.superview.frame)-2*15; + } + [_alertView addConstraintWidth:_alertViewWidth height:0]; + } + + if (!findAlertViewHeightConstraint && !_alertViewHeight) { + /**2019-10-04 12:10:15 如果没有人为设置_alertViewHeight, default:200*/ + if (hasSetFrame) { + _alertViewHeight = _alertView.frame.size.height; + }else{ + _alertViewWidth = 200; + } + [_alertView addConstraintWidth:0 height:_alertViewHeight]; + } } #pragma mark - add Gesture