2013-08-23 3 views
1

나는 사용자가 접촉하고, 사용자가 옵션 중 하나를 선택하지 않는 경우 종료됩니다 때 열리는 UIControl의 서브 클래스로 메뉴를 짓고 있어요 외부 접촉.UIControl 트랙은보기

나는 투명 색상의 배경 장치의 전체 영역을 커버 메뉴 뒤에 하나 개의보기를 넣고 메뉴

답변

0

을 닫을 수 있도록 사용자가 외부 닿을 때 추적 할 수있는 방법을 찾고 있어요. 메뉴가 열리면 해당보기가 표시됩니다. 메뉴와 바깥 쪽을 클릭 할 때마다 TapGesture를 사용하여 해당 뷰를 식별하거나 UIControl로 만들 수 있습니다. 메뉴 및 그 uiview를 숨기려면 호출 메소드보다.

희망이 도움이 될 것입니다.

+0

흠 ... 내가 무엇을 찾고 있어요 먹으 렴 생각하지 않습니다. 사용자가 다른 컨트롤과 상호 작용할 때를 감지하고 있습니다. 만약 내가 프레임의 크기와 같은 것을 만들면 그것은 전달되지 않을 것입니다. –

0

는 내가 정말하고 싶은 것은 전체보기를 커버 큰 버튼을 만들고, 메뉴, 또는 어떤 다른 내가 멀리에서 터치 뭔가 일이 갖고 싶어 아래를하는 것입니다. 일부 응용 프로그램에

UIButton *bigBackButton = [[UIButton alloc]initWithFrame:self.view.frame]; 
    [bigBackButton addTarget:self action:@selector(backButtonSelected) forControlEvents:UIControlEventTouchDown]; 
    [bigBackButton setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]]; 
    [self.view addSubview:bigBackButton]; 

} 
- (void)backButtonSelected:(UIButton *)button { 
    //get rid of the button 
    [button removeFromSuperview]; 

    //do whatever else you need to do 
    [yourmenu dosomething]; 
} 

, 나는 어떤 다른 메뉴를 강조하기 버튼을 어둡고 반투명 만들 수 있습니다. 다른 시간 나는 당신이이 같은 루틴을 추가 할 수 있습니다 메뉴 루틴에서 [UIColor colorWithWhite:1.0 alpha:0.01];

처럼, 그것은 거의 눈에 보이지 않는 것입니다. 상위 뷰의 프레임을 전달하거나 메뉴가 UIView의 하위 클래스 인 경우 layoutSubviews 루틴에서 해당 뷰를 조회 할 수 있습니다.

UIButton *bigBackButton = [[UIButton alloc]initWithFrame:self.superview.frame]; 
    [bigBackButton addTarget:self action:@selector(backButtonSelected) forControlEvents:UIControlEventTouchDown]; 
    [bigBackButton setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]]; 
    [self.view addSubview:bigBackButton]; 

을 다음뿐만 아니라 메뉴 클래스의 backButtonSelected 방법을 넣어 : 당신의 layoutSubviews에

이를 추가합니다.

+0

흠 .... 나는 비슷한 것을 생각했지만 메뉴의 클래스 구현 내에서 찾고있다. 그런 식으로 내가 원할 때마다 wan't 할 수 있고 다른 것들을 추가하는 것에 대해 걱정할 필요가없는 어떤보기에도 추가 할 수 있습니다. –

+0

메뉴 클래스의 일부로 루틴을 추가 할 이유가 없습니다. (편집 참조) – HalR

관련 문제