2014-09-15 13 views

답변

1

간단히 마스킹 뷰를 생성하고 slidingviewcontroller에서 알림을 표시하거나 제거했습니다. 에서 멋진 페이드 추가 및 효과에 대한 조치를 페이드 아웃 :이 그 통지를 제어의 최신 버전에서 제거하지만 github의 역사에서 그들을 복구하고 사용할 수 있습니다처럼

#import <UIKit/UIKit.h> 
UIView *overLayView; 
@interface MyViewController : UIViewController { 
    UIView *overLayView; 
} 
@end 

@implementation MyViewController 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    overLayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    overLayView.backgroundColor = [UIColor blackColor]; 
} 
-(void) viewWillAppear:(BOOL)animated{ 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(disableView) name:ECSlidingViewUnderLeftWillAppear object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enableView) name:ECSlidingViewTopWillReset object:nil]; 
} 
- (void)viewWillDisappear:(BOOL)animated{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:ECSlidingViewUnderLeftWillAppear object:nil]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:ECSlidingViewTopWillReset object:nil]; 
} 

-(void) disableView { 

    overLayView.alpha = 0; 

    [self.view addSubview:overLayView]; 

    [UIView animateWithDuration:0.5 animations:^{ 
     overLayView.alpha += kViewHelperUIViewMaskAlpha; 
    }]; 
} 

-(void) enableView { 
    [UIView animateWithDuration:0.5 animations:^{ 
     overLayView.alpha -= kViewHelperUIViewMaskAlpha; 

    } completion:^(BOOL fin){ 
     if(fin){ 
      [overLayView removeFromSuperview]; 
     } 
    }]; 
} 

@end 
+0

이 보이는 도움이되기를 바랍니다. 감사. –

+0

더 알아 두어야 할 것이 2 가지. 1. ECSlidingViewController의 현재 버전 (2)에 공지가 게시되지 않았습니다. [ECSlidingViewController completeTransition]을 서브 클래스 화해야합니다. 2. 개인적으로 구현을 포함하고있는 UIVIewController의 하위 클래스를 만들었습니다. – jchnxu