2014-12-31 13 views
0

맞춤 알림과 관련된 앱을 진행하고 있습니다. 경고에서 확인 단추를 클릭하면 투명 배경으로 경고보기를 표시하는 코드가 작성되어 경고가 사라집니다. 내가 투명보기를 터치하면서 일이 같은 일에 대한 도움이 필요IOS : 백그라운드에서 클릭하면보기가 제거됩니다.

또한 내 코드는이 이하 :

- (void)didCustomPopUpAlertLoad:(UIView *)parentView andtitle:(NSString *)strTitle { 

[self setRootView:parentView]; 
self.lblAlertMessage.text = strTitle; 

//Add alertview into transparent view to hide parent view interaction 
UIView *transparentView = [[UIView alloc] initWithFrame:parentView.bounds]; 
[transparentView setBackgroundColor:[UIColor clearColor]]; 
[transparentView addSubview:self]; 

float x = (int)(transparentView.bounds.size.width - self.bounds.size.width)>>1; 
float y = (int)(transparentView.bounds.size.height - self.bounds.size.height)>>2; 
[self setFrame:CGRectMake(x, y+62, self.bounds.size.width, self.bounds.size.height)]; 

// [self setFrame:CGRectMake(x+10, y+62, self.bounds.size.width, self.bounds.size.height)]; 
[self.window addSubview:transparentView]; 
[self.window makeKeyAndVisible]; 
[[transparentView subviews] 
makeObjectsPerformSelector:@selector(setUserInteractionEnabled:) 
withObject:[NSNumber numberWithBool:FALSE]]; 


} 
-(void)didCustomPopUpUnload{ 

[self.superview removeFromSuperview]; 
// Set up the fade-in animation 
self.window = nil; 

} 

-(IBAction)didActionOkAlertPopUp:(id)sender{ 

[self didCustomPopUpUnload]; 
} 
+0

tansparent보기에서 탭 제스처를 추가하십시오. –

+0

투명한 뷰의 크기가 창 크기와 같지 않은 경우 투명한 뷰 외부의 영역을 터치하면 터치가 감지되지 않습니다. 투명한 화면을 전체 화면으로 볼 수없는 경우 hitTest를 익히고 그렇지 않으면 제스처를 추가하거나 터치 이벤트를 무시하십시오. – Suen

+0

전체 화면으로 표시 할 수없는 경우 현재 창에 다른 투명한 뷰를 추가하여 터치를 테스트하고 메서드 'hitTest : withEvent :'를 재정의해야합니다. – Suen

답변

2

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

추가이 방법을 다음 사용자 지정 투명보기를 만들기보다 우선하여 이보기에 경고보기를 표시하고이보기를 전체 화면보기로 사용하십시오. event 매개 변수를 사용하여 alertview 내부 또는 외부의 사용자 터치를 파악할 수 있습니다.