123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- //
- // UIView+TYAlertView.m
- // TYAlertControllerDemo
- //
- // Created by tanyang on 15/9/7.
- // Copyright (c) 2015年 tanyang. All rights reserved.
- //
- #import "UIView+TYAlertView.h"
- @implementation UIView (TYAlertView)
- + (instancetype)createViewFromNibName:(NSString *)nibName
- {
- NSArray *nib = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil];
- return [nib objectAtIndex:0];
- }
- + (instancetype)createViewFromNib
- {
- return [self createViewFromNibName:NSStringFromClass(self.class)];
- }
- - (UIViewController*)viewController
- {
- for (UIView* next = [self superview]; next; next = next.superview) {
- UIResponder* nextResponder = [next nextResponder];
- if ([nextResponder isKindOfClass:[UIViewController class]]) {
- return (UIViewController*)nextResponder;
- }
- }
- return nil;
- }
- #pragma mark - show in window
- - (void)showInWindow
- {
- [self showInWindowWithBackgoundTapDismissEnable:NO];
- }
- - (void)showInWindowWithBackgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable
- {
- if (self.superview) {
- [self removeFromSuperview];
- }
- [TYShowAlertView showAlertViewWithView:self backgoundTapDismissEnable:backgoundTapDismissEnable];
- }
- - (void)showInWindowWithOriginY:(CGFloat)OriginY
- {
- [self showInWindowWithOriginY:OriginY backgoundTapDismissEnable:NO];
- }
- - (void)showInWindowWithOriginY:(CGFloat)OriginY backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable
- {
- if (self.superview) {
- [self removeFromSuperview];
- }
- [TYShowAlertView showAlertViewWithView:self originY:OriginY backgoundTapDismissEnable:backgoundTapDismissEnable];
- }
- - (void)hideInWindow
- {
- if ([self isShowInWindow]) {
- [(TYShowAlertView *)self.superview hide];
- }else {
- NSLog(@"self.superview is nil, or isn't TYShowAlertView");
- }
- }
- #pragma mark - show in controller
- - (void)showInController:(UIViewController *)viewController
- {
- [self showInController:viewController preferredStyle:TYAlertControllerStyleAlert transitionAnimation:TYAlertTransitionAnimationFade];
- }
- - (void)showInController:(UIViewController *)viewController preferredStyle:(TYAlertControllerStyle)preferredStyle
- {
- [self showInController:viewController preferredStyle:preferredStyle transitionAnimation:TYAlertTransitionAnimationFade];
- }
- - (void)showInController:(UIViewController *)viewController preferredStyle:(TYAlertControllerStyle)preferredStyle backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable
- {
- [self showInController:viewController preferredStyle:preferredStyle transitionAnimation:TYAlertTransitionAnimationFade backgoundTapDismissEnable:backgoundTapDismissEnable];
- }
- - (void)showInController:(UIViewController *)viewController preferredStyle:(TYAlertControllerStyle)preferredStyle transitionAnimation:(TYAlertTransitionAnimation)transitionAnimation
- {
- [self showInController:viewController preferredStyle:preferredStyle transitionAnimation:transitionAnimation backgoundTapDismissEnable:NO];
- }
- - (void)showInController:(UIViewController *)viewController preferredStyle:(TYAlertControllerStyle)preferredStyle transitionAnimation:(TYAlertTransitionAnimation)transitionAnimation backgoundTapDismissEnable:(BOOL)backgoundTapDismissEnable
- {
- if (self.superview) {
- [self removeFromSuperview];
- }
-
- TYAlertController *alertController = [TYAlertController alertControllerWithAlertView:self preferredStyle:preferredStyle transitionAnimation:transitionAnimation];
- alertController.backgoundTapDismissEnable = backgoundTapDismissEnable;
- [viewController presentViewController:alertController animated:YES completion:nil];
- }
- - (void)hideInController
- {
- if ([self isShowInAlertController]) {
- [(TYAlertController *)self.viewController dismissViewControllerAnimated:YES];
- }else {
- NSLog(@"self.viewController is nil, or isn't TYAlertController");
- }
- }
- #pragma mark - hide
- - (BOOL)isShowInAlertController
- {
- UIViewController *viewController = self.viewController;
- if (viewController && [viewController isKindOfClass:[TYAlertController class]]) {
- return YES;
- }
- return NO;
-
- }
- - (BOOL)isShowInWindow
- {
- if (self.superview && [self.superview isKindOfClass:[TYShowAlertView class]]) {
- return YES;
- }
- return NO;
- }
- - (void)hideView
- {
- if ([self isShowInAlertController]) {
- [self hideInController];
- }else if ([self isShowInWindow]) {
- [self hideInWindow];
- }else {
- NSLog(@"self.viewController is nil, or isn't TYAlertController,or self.superview is nil, or isn't TYShowAlertView");
- }
- }
- @end
|