diff --git a/AFPopupView.h b/AFPopupView.h index 0c67295..e1ce6b7 100644 --- a/AFPopupView.h +++ b/AFPopupView.h @@ -16,5 +16,5 @@ -(void)show; -(void)hide; - +-(void)hideAndRestore; @end diff --git a/AFPopupView.m b/AFPopupView.m index 4e5cec2..a672132 100644 --- a/AFPopupView.m +++ b/AFPopupView.m @@ -35,7 +35,12 @@ @interface AFPopupView () @end -@implementation AFPopupView +@implementation AFPopupView{ + BOOL _restoreable; + UIView * _popupView; + UIView * _originalSuperView; + NSUInteger _originalIndex; +} +(AFPopupView *)popupWithView:(UIView *)popupView { @@ -49,6 +54,10 @@ +(AFPopupView *)popupWithView:(UIView *)popupView { AFPopupView *view = [[AFPopupView alloc] initWithFrame:rect]; + view->_popupView = popupView; + view->_originalSuperView = [popupView superview]; + view->_originalIndex = [[[popupView superview] subviews] indexOfObject:popupView]; + view.modalView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height - (50 * 2))]; view.modalView.backgroundColor = [UIColor clearColor]; view.modalView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleHeight | @@ -170,6 +179,19 @@ -(void)hideByTap { } } +-(void)hideAndRestore { + _restoreable = YES; + [self hide]; +} + +- (void)removeFromSuperview; { + if(_restoreable && _originalSuperView && _popupView){ + [_originalSuperView insertSubview:_popupView atIndex:_originalIndex]; + _restoreable = NO; + } + [super removeFromSuperview]; +} + -(UIImage *)imageWithView:(UIView *)view { UIGraphicsBeginImageContextWithOptions(_renderImage.frame.size, view.opaque, [[UIScreen mainScreen] scale]);