2011-11-25 3 views
0

두 개의 하위보기가있는 기본보기 컨트롤러가 있습니다. 하나는 메모보기이고 다른 하나는 공유보기입니다. 메인 뷰 컨트롤러에있는 tableview의 셀을 클릭하면 노트 뷰가 팝업되고, 노트 뷰에는 버튼이 있습니다. 사용자가 버튼을 누르면 다른 서브 뷰 인 공유 뷰가 나타납니다. 하지만 사용자가 메모보기를 탭하면 공유보기를 닫아야합니다. 하위보기에서 터치 이벤트를 구현할 수 있습니까? 나는이 코딩을 수행했지만 결과는 뷰 컨트롤러의 touchesBegan: 내부하위 뷰에서 터치 이벤트를 설정하는 방법은 무엇입니까?

NotesView *label =[[NotesView alloc]init]; 
UITapGestureRecognizer *tapGesture = 
[[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(NoteTap)]  autorelease]; 
[label addGestureRecognizer:tapGesture]; 
[tapGesture release]; 

다음

-(void)NoteTap 
{ 
    UIView *langview = (UIView *)[self.view viewWithTag:120]; 
    //ViewWithTag Number should be same as used while allocating 
    [langview removeFromSuperview]; 
} 
+0

@EmptyStack는? 감사합니다 내가 일부러 – ICoder

답변

2

있는 viewDidLoad에 오류 , 당신은 터치 이벤트의 프레임 내에서 장소를 소요 있는지 확인할 수 있습니다 그렇게 subview. 나는이 문제 각하를 해결할 수있는 방법을

CGPoint touchPoint = [touch locationInView:self]; 

if (CGRectContainsPoint(label.frame, touchPoint)) { 

UIView *langview = (UIView *)[self.view viewWithTag:120]; 
[langview removeFromSuperview]; 

} 
+0

통해 UR 대답을 보았다 코드를 CHK 통해 UR 종류의 u.thnks이 – ICoder

+0

큰 answerrrrrrrrr.it이 me.thankssssss 잘 동작 응답 되돌아갑니다. – ICoder

관련 문제