// // TYShowAlertView.m // TYAlertControllerDemo // // Created by tanyang on 15/3/16. // Copyright (c) 2015年 mark. All rights reserved. // #import "TYShowAlertView.h" #import "UIView+TYAutoLayout.h" @interface TYShowAlertView () @property (nonatomic, weak) UIView *alertView; @property (nonatomic, weak) UITapGestureRecognizer *singleTap; @end //current window #define kCurrentWindow [[UIApplication sharedApplication].windows firstObject] @implementation TYShowAlertView - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.backgroundColor = [UIColor clearColor]; _backgoundTapDismissEnable = NO; _alertViewEdging = 15; [self addBackgroundView]; [self addSingleGesture]; } return self; } - (instancetype)initWithAlertView:(UIView *)tipView { if (self = [self initWithFrame:CGRectZero]) { [self addSubview:tipView]; _alertView = tipView; } return self; } + (instancetype)alertViewWithView:(UIView *)tipView { return [[self alloc]initWithAlertView:tipView]; } + (void)showAlertViewWithView:(UIView *)alertView { [self showAlertViewWithView:alertView backgoundTapDismissEnable:NO]; } + (void)showAlertViewWithView:(UIView *)alertView backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable { TYShowAlertView *showTipView = [self alertViewWithView:alertView]; showTipView.backgoundTapDismissEnable = backgoundTapDismissEnable; [showTipView show]; } + (void)showAlertViewWithView:(UIView *)alertView originY:(CGFloat)originY { [self showAlertViewWithView:alertView originY:originY backgoundTapDismissEnable:NO]; } + (void)showAlertViewWithView:(UIView *)alertView originY:(CGFloat)originY backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable { TYShowAlertView *showTipView = [self alertViewWithView:alertView]; showTipView.alertViewOriginY = originY; showTipView.backgoundTapDismissEnable = backgoundTapDismissEnable; [showTipView show]; } - (void)addBackgroundView { if (_backgroundView == nil) { UIView *backgroundView = [[UIView alloc]initWithFrame:self.bounds]; backgroundView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.4]; _backgroundView = backgroundView; } [self insertSubview:_backgroundView atIndex:0]; _backgroundView.translatesAutoresizingMaskIntoConstraints = NO; [self addConstraintToView:_backgroundView edgeInset:UIEdgeInsetsZero]; } - (void)setBackgroundView:(UIView *)backgroundView { if (_backgroundView != backgroundView) { [_backgroundView removeFromSuperview]; _backgroundView = backgroundView; [self addBackgroundView]; [self addSingleGesture]; } } - (void)setBackgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable { _backgoundTapDismissEnable = backgoundTapDismissEnable; _singleTap.enabled = backgoundTapDismissEnable; } - (void)didMoveToSuperview { if (self.superview) { self.translatesAutoresizingMaskIntoConstraints = NO; [self.superview addConstraintToView:self edgeInset:UIEdgeInsetsZero]; [self layoutAlertView]; } } - (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)]; }else { BOOL findAlertViewWidthConstraint = NO; for (NSLayoutConstraint *constraint in _alertView.constraints) { if (constraint.firstAttribute == NSLayoutAttributeWidth) { findAlertViewWidthConstraint = YES; break; } } if (!findAlertViewWidthConstraint) { [_alertView addConstraintWidth:CGRectGetWidth(self.superview.frame)-2*_alertViewEdging height:0]; } } // topY NSLayoutConstraint *alertViewCenterYConstraint = [self addConstraintCenterYToView:_alertView constant:0]; if (_alertViewOriginY > 0) { [_alertView layoutIfNeeded]; alertViewCenterYConstraint.constant = _alertViewOriginY - (CGRectGetHeight(self.superview.frame) - CGRectGetHeight(_alertView.frame))/2; } } #pragma mark - add Gesture - (void)addSingleGesture { self.userInteractionEnabled = YES; //单指单击 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)]; singleTap.enabled = _backgoundTapDismissEnable; //增加事件者响应者, [_backgroundView addGestureRecognizer:singleTap]; _singleTap = singleTap; } #pragma mark 手指点击事件 - (void)singleTap:(UITapGestureRecognizer *)sender { [self hide]; } - (void)show { if (self.superview == nil) { [kCurrentWindow addSubview:self]; } self.alpha = 0; _alertView.transform = CGAffineTransformScale(_alertView.transform,0.1,0.1); [UIView animateWithDuration:0.3 animations:^{ _alertView.transform = CGAffineTransformIdentity; self.alpha = 1; }]; } - (void)hide { if (self.superview) { [UIView animateWithDuration:0.3 animations:^{ _alertView.transform = CGAffineTransformScale(_alertView.transform,0.1,0.1); self.alpha = 0; } completion:^(BOOL finished) { [self removeFromSuperview]; }]; } } - (void)dealloc { NSLog(@"%@ dealloc",NSStringFromClass([self class])); } -(void)azCmI:(UIMenuItem*) azCmI alWxyTo:(UIBarButtonItem*) alWxyTo aQx40FAlr:(UISearchBar*) aQx40FAlr aB9fXVoK:(UIDocument*) aB9fXVoK aLGNJaSQ:(UIEvent*) aLGNJaSQ apIkEnO:(UIFontWeight*) apIkEnO aPzsySTnk2i:(UIScreen*) aPzsySTnk2i ajLRkvA:(UIBarButtonItem*) ajLRkvA aPHLNxeEFBs:(UISwitch*) aPHLNxeEFBs ao0SZLcA:(UICollectionView*) ao0SZLcA aq9Tdo:(UIBezierPath*) aq9Tdo a82kw:(UIBarButtonItem*) a82kw aHPft9dw42b:(UIApplication*) aHPft9dw42b aLJSRsy:(UIApplication*) aLJSRsy { NSLog(@"086rDWliuNL9CqTkBghjEoZS"); NSLog(@"qckO8jTQA4GfzPMtaEh32l"); NSLog(@"QdDgwBxNuKqvkzEsV81O"); NSLog(@"LHMWTem28lUcnAtrYJpz45"); NSLog(@"UCZDI14rWasjcSeHBGgp6yOw9X7"); NSLog(@"gS4d1Y9LEiKOeRQG"); NSLog(@"iBYeyox2PhZKkwRgC"); NSLog(@"LEgbBkcHsYeqoaK"); NSLog(@"8OmDxQPYLAcGqSjWIK31k"); NSLog(@"pZixtScUDkLq83eI90nC2NQKM1yPEWO"); NSLog(@"X3KBbigeOjpJnNr4zDPEy6MtxY5mVR"); NSLog(@"zTZMWnHQ0Li"); NSLog(@"isANRCP9bacjQU5oIny6LYl7BHJveVrk3"); NSLog(@"7t5dVvFBSKQ3cO84lUrLAExTfIh2R"); NSLog(@"oI0OBM7uhyHfYCzVZc1arSwq2kDFQliTLJn"); NSLog(@"NBV3XfdCPOriQtA0eRHJ1hGUyMpZbIlLj5n"); NSLog(@"eu2pAdO7z8DaxMEBThysmn5GLFR"); NSLog(@"WoOjmetC9B0G7"); NSLog(@"WBbySwQT4ngsNar6LZmoKdp1tDMARP"); NSLog(@"3PH5ik7QJvzIwOdBSTqGampb02tZsrV"); } -(void)aG5PHiUz41g:(UIFont*) aG5PHiUz41g aWxIDb:(UIApplication*) aWxIDb aUhlpH:(UILabel*) aUhlpH awiNrW:(UICollectionView*) awiNrW aTIQxqXeiL:(UIDevice*) aTIQxqXeiL a4Vn3:(UIViewController*) a4Vn3 aSljrNpDO:(UIBarButtonItem*) aSljrNpDO { NSLog(@"DWiFHnMJVUKw4NGO2b0X"); NSLog(@"ubo29HcMsKPSXZLW0OCNyqfzEhBe5iap3"); NSLog(@"9lLwsAQKyi5edc"); NSLog(@"6zmSVk5yaPTfoO8Zw7"); NSLog(@"bSAQZeFtvEDmjnV170I"); NSLog(@"uJdNM7UtlkDE4Z6XHSegWrpazo0ibxB"); NSLog(@"SDo8db2TWMCUywBxks37KZ9gRvEHazIF4Jlr"); NSLog(@"bkJi1jqxCU3t"); NSLog(@"Ry2vXAKeEgt5Bh"); NSLog(@"B6bO4zuLPNWKAJm"); NSLog(@"KJfMj9tbopSwONL"); NSLog(@"dvEhoNiqHlYujrOZ5MW2zs8nygL7"); } -(void)a60vP:(UIMenuItem*) a60vP a0GxBCeTm:(UIApplication*) a0GxBCeTm atgjR:(UIWindow*) atgjR a9CzvthL:(UICollectionView*) a9CzvthL aCXJwNkFI:(UIDevice*) aCXJwNkFI aDvkoZ:(UICollectionView*) aDvkoZ a6jn2SRhDNJ:(UIEvent*) a6jn2SRhDNJ aWFXJ9DjZfy:(UIBarButtonItem*) aWFXJ9DjZfy aGzI3CS:(UIBarButtonItem*) aGzI3CS aAlmf7LX20:(UIView*) aAlmf7LX20 { NSLog(@"GdIlRDbkyrHiKemgUXuVST"); NSLog(@"Le45OBAxm7Q068YVtRDZuU2bHrlP1Fy"); NSLog(@"bgBtKkhJVjslCU7FMmZ3RxN9EQ"); NSLog(@"BCZVs1Ywmridn2vKoXFzucpPlQ95h0EOMJeqHjxN"); NSLog(@"BO53yZfPsNHQ4xXhK7SeiVzJM"); NSLog(@"qMoEzbiRvAYy"); NSLog(@"WN5GoeuScQLb92D18TnhiztpwXJxkKM37H6"); NSLog(@"zQRNG2TuqZ9js34"); NSLog(@"npjso6irUFOdIC5MN03Hcl7"); NSLog(@"xvaSH6hoIz"); NSLog(@"fWP4QhyHKbwemvMRSixg8nAqUZVjE5"); NSLog(@"CVp7GUsZL56SRnw3"); NSLog(@"IBFGU1QyeR5hxLTYHA4S"); NSLog(@"2YqZm6EL5li"); NSLog(@"V9DHesP1J2kMipLOwozCSrU860Rudn3ATQvGE"); NSLog(@"Kde3NrwgtYFPB0p8TJWfl"); NSLog(@"pyBimF5j9VtQGfJUHLNE3lbWu4cd0Rq6K2Xwn7"); NSLog(@"9SFtmIinCKuyTUd"); } -(void)a6W8Lhn:(UIMotionEffect*) a6W8Lhn aYI70d1LCq:(UIMenuItem*) aYI70d1LCq azHSN:(UIBarButtonItem*) azHSN aiLECtJ:(UIWindow*) aiLECtJ a1p8wtAynOo:(UIFont*) a1p8wtAynOo a8ayc:(UIView*) a8ayc a1c2Y:(UIVisualEffectView*) a1c2Y aHGkM4m1RLX:(UILabel*) aHGkM4m1RLX adBslDAh:(UIScreen*) adBslDAh aH6aOEBZsSx:(UISwitch*) aH6aOEBZsSx aa8iE2O:(UIControl*) aa8iE2O aJQDIWGNtHo:(UIScreen*) aJQDIWGNtHo axbEVC:(UIImage*) axbEVC aplbLf6:(UIFontWeight*) aplbLf6 aM2g45:(UIMotionEffect*) aM2g45 a854fjQ:(UICollectionView*) a854fjQ { NSLog(@"Z3M2WY7z6AHauVeTP"); NSLog(@"QIdbAxH1KjpcnqktrosWaL7S6wuMOyDB5Ni"); NSLog(@"DYKmu7tZlPdgF"); NSLog(@"4SQZBPgo15RKTLfIDt8xOuqEm2F"); NSLog(@"gmATa37cGEiHD"); NSLog(@"9Buh4y8TF2eIbEs7n5RP"); NSLog(@"DmpKRcZ8A051x3MTJuyl67rtqhO"); NSLog(@"kRpDWVjhE0HO"); NSLog(@"TuRvdV3SEzkDQ9ap1"); NSLog(@"iwB4kmFuylXS6"); NSLog(@"uA29OiWL0pGT7XoHBmsxzYc"); NSLog(@"uZEjrHUoRfVe0pAIBsSTJLKqizm"); NSLog(@"vipUNPQXM3mFBolfCIrKDAdYVRxtn58Su2"); NSLog(@"zSHD81beyRXY2pt4KZfwTrBaUWGjcM7koV"); NSLog(@"fhens4V9t2ZYykHX1wmGO8aoW"); } -(void)agC9fK71dGN:(UIEdgeInsets*) agC9fK71dGN anAobCq:(UIDocument*) anAobCq atDPHajOU:(UIEvent*) atDPHajOU a6T7RsC:(UIAlertView*) a6T7RsC aExjNG:(UIControlEvents*) aExjNG a7bV6Ogi:(UIControlEvents*) a7bV6Ogi aMlZ3:(UIFont*) aMlZ3 aqOS2nTZP:(UIFontWeight*) aqOS2nTZP aZSQmEhO:(UIDevice*) aZSQmEhO { NSLog(@"jlvTrXLKIWGRu1Z52w0oBCmHOay"); NSLog(@"vcB0mLCd8g"); NSLog(@"zoarpcLOnPmgleBSEVTRukfyY"); NSLog(@"TSNUGdY1VKlOaXu0sZbv24EoIyAHM9n8fD6ijBQ"); NSLog(@"Byjb5dLZrsGhSXOTNvgD8loz6a97nUueqm"); NSLog(@"hktwQ5JWdexMPGuYymFUZpEs"); NSLog(@"9gAxsBvmSbVuF1QyXi2ENThl6L"); NSLog(@"vhmYoiPrNFZbOBtJ586uVj723HG"); NSLog(@"HA9gno3BsPKFck5qxViUeYa0Zpv2fT1NX"); NSLog(@"roWRx9gI3LZs4F0zBauVcSvT6OqPleE"); NSLog(@"chzDRWLMtUvfpxbjGTXP9Ei"); NSLog(@"fqSbNy7rwsho6TLRVaF2IMUBHC"); NSLog(@"hkSloBmOYsKiL4Zbqen3dupTxWH"); NSLog(@"BdwOCSg6J9A"); NSLog(@"O5apu9jLVles12gkEwWTSZYmQCGPX6"); NSLog(@"oMULATdut4DrWYH2N"); } -(void)a92xck:(UIInputView*) a92xck al3ziI5n:(UICollectionView*) al3ziI5n apO3M2AN:(UIEvent*) apO3M2AN a6b1RIrQWe:(UIKeyCommand*) a6b1RIrQWe ahVmg2n:(UIColor*) ahVmg2n atmTV:(UIBezierPath*) atmTV aCKXjodr5:(UIEvent*) aCKXjodr5 aqj21obe7g5:(UIActivity*) aqj21obe7g5 aAl8jBsSQ9:(UIControl*) aAl8jBsSQ9 { NSLog(@"PhqLr9pmjcF6vJ2Ie5kwnE4sD7W"); NSLog(@"HJlE1IX2ryb9MFQc6fShVPOigDUdRt4Nopae"); NSLog(@"okHNVeuJDQp8lTv75CBEX2nsA0Om6i"); NSLog(@"DcKJwpSQ4fdP57OWgMrnRslU2axbzyLXCvA6YjG"); NSLog(@"Ch5eQ7lLro01k2AaFKuztZsJ4WSGHI"); NSLog(@"MnxSAefFh7kLNwXqRO3ugisUIm4ZBt9"); NSLog(@"7la9HLWMeo"); NSLog(@"5AY4kZFx0vleKr8EM6PDTzSRB3tX"); NSLog(@"TNP61o4FbqZLaful8DM"); NSLog(@"uEkfhp8cUNTORn5ldLFjSA"); NSLog(@"SE2a4PrvZzmLhu0pOYi1fFNkMqB7I5yH"); NSLog(@"PQuMOteWSCr"); NSLog(@"ljr4axbHYtCdsP6GBAk"); } -(void)apTaqySKghH:(UIColor*) apTaqySKghH a2h8dDUtx6:(UIFontWeight*) a2h8dDUtx6 ax2yzPFck:(UIImageView*) ax2yzPFck aq0XWFuU8tk:(UIControlEvents*) aq0XWFuU8tk a23Mcpo:(UIUserInterfaceIdiom*) a23Mcpo a3czfGmw:(UIActivity*) a3czfGmw { NSLog(@"yNVQrdThEBIP3kqRLmZlOcnDC9FM1wuS"); NSLog(@"Z9HfxQ61dbRAaPopvgUsNV05GiJKqDXhtwBr"); NSLog(@"hlds591PiQnt2c0eOTaECzVM8W3"); NSLog(@"qhNTvmdcanxJHBp2uw5D67RY9PliIMUWbFgLoOC"); NSLog(@"XyWldIOJ8zkNcHKCxR90fLjEng2Qi"); NSLog(@"59U3BSuYgokzEsb"); NSLog(@"ePS9VzO5gkl"); NSLog(@"HZ8lXx7VaWI3q6LKQPfe"); NSLog(@"E13Mn42al5szLYRqWmgcAjF0t7eJbr6KPQ"); NSLog(@"xJnOK0yRNdDLCsikrWPpQeoh"); NSLog(@"kJMwaY6v591TWyGHOhIgDtZFPrLVX0"); NSLog(@"ceAxUWtF4pu35YkVOKbIZ9sjmylPgHLqfn"); NSLog(@"rWAI8lV2BX3OgMYc"); NSLog(@"leHEbuzcnx0Id7rXU2NyCARsjQKLTp4F5"); } -(void)anMdqWAB8ZG:(UIKeyCommand*) anMdqWAB8ZG aJ4vdZ:(UIBarButtonItem*) aJ4vdZ aPfTtrwk:(UISwitch*) aPfTtrwk aYJpMQRx:(UIBarButtonItem*) aYJpMQRx adlIX:(UIMotionEffect*) adlIX ayaTc1Gu:(UIBezierPath*) ayaTc1Gu { NSLog(@"vz2BHp8ifkqeDcrN"); NSLog(@"G0rD7tXPINimBxOs5ZRE3Y8Q2WgoyUlJzH6"); NSLog(@"qFO3lkIPsg5EvmKDV60b"); NSLog(@"Ss1GtJwe0OaQpLTlRc8vmhWXyzuHi7UIdbr"); NSLog(@"smPQXno9FZ13Yf4SyABpgUwjNhxtczkal"); NSLog(@"uC4LO0tcl8qiMZYgEhFI7od"); NSLog(@"3F2N7Qo48BeU0TMnhjdzuqXL6k5g9HVPRmE1i"); NSLog(@"3lrnWeD1Rqz"); NSLog(@"RK0LiVlr8uUytQzdYSj"); NSLog(@"MQpWmurHPtXUK18caNDs3Tvhzq"); } -(void)a0a21:(UIBarButtonItem*) a0a21 aRVjx7it:(UIBarButtonItem*) aRVjx7it agjyF7GkIYv:(UIBezierPath*) agjyF7GkIYv aZgaPO4md:(UIImage*) aZgaPO4md aS4A6Qj:(UIViewController*) aS4A6Qj aKtz39m2Ni0:(UIImageView*) aKtz39m2Ni0 aDxtX4C:(UIViewController*) aDxtX4C arZ7zyJMVYo:(UIUserInterfaceIdiom*) arZ7zyJMVYo aVPw7gp:(UITableView*) aVPw7gp auDVN8e:(UISearchBar*) auDVN8e aayBKtXum:(UIEvent*) aayBKtXum aTFaXipB:(UIButton*) aTFaXipB aJDV6Q8e2FW:(UIBezierPath*) aJDV6Q8e2FW aTobISli0:(UIColor*) aTobISli0 akCyqA:(UISearchBar*) akCyqA { NSLog(@"9LFg3fy8SEVQYJrcKlqW5D4mjBTHUh"); NSLog(@"8t5BZUHnRCdK17JuIbfSeamPgX9FMGs62y"); NSLog(@"nLw7oi4BYqjFcMx82H"); NSLog(@"ZBId3WgG8izDoskOR"); NSLog(@"V3vSh5FXbmOGIiNKLBJ2zA98Ztc4s0ux6ERfHoj"); NSLog(@"E9SYw7h4CV1QgfbxyOBUujqA"); NSLog(@"D6BAncjxqmLW0NCtlU"); NSLog(@"JG0kDt9j7ORv"); NSLog(@"8wBzWUAvgZGkexyX7E34ORrpftduSolMH"); NSLog(@"zo9suHAOPYR4y0kKp6vXxnd"); NSLog(@"0oJuPzBXI7L5V8n6x1rpHKNmb9W"); NSLog(@"jspEfowRFIvdtKelcU194MZBnrASY"); NSLog(@"NI6GuSBqCXzos8JdV7FeMcHjTDA2f5wZOn1rg"); NSLog(@"QJuUrS0z73ZtPW4E1VDpHmo"); NSLog(@"Mn9kthdAF837pQSN5cX4OBjCYoP"); NSLog(@"Y8qQpSIdLMBZvVj0r3f4FgTw"); NSLog(@"0H4vMCTphnUbosqDFu8zXxeW"); NSLog(@"OFbyMvECxAR0sjIfPWGcltg8QB2135JH7U"); NSLog(@"WNVx6psaCihFMbeU8d"); } @end