2014-11-17 3 views
0

내보기 중 하나에 UIGestureRecognizer를 추가하려고합니다. 그것은 어떤 접촉도받지 못합니다. 이것이 내가 한 것입니다 :UIGestureRecognizer iOS

@interface SettingsView()<UIGestureRecognizerDelegate> 
@property (nonatomic, strong) UIView *menu; 
@end 

@implementation FRMSettingsView 

- (id)initWithSize:(CGPoint)size { 
    if (self = [super initWithFrame:[[UIScreen mainScreen] bounds]]) { 
     self.menu = [[UIView alloc]initWithFrame:CGRectMake(-size.x, 0, size.x, size.y)]; 
     self.menu.backgroundColor = [UIColor whiteColor]; 
     self.menu.UserInteractionEnabled = YES; 
     [self addSubview:self.menu]; 

     UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeRecognizer:)]; 
     recognizer.direction = UISwipeGestureRecognizerDirectionRight; 
     recognizer.numberOfTouchesRequired = 1; 
     recognizer.delegate = self; 
     [self.menu addGestureRecognizer:recognizer]; 
    } 
    return self; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    NSLog(@"touch"); 

    return YES; 
} 

- (void) SwipeRecognizer:(UISwipeGestureRecognizer *)sender { 
    NSLog(@"swipe"); 
} 

출력이 없습니다. 터치 나 스 와이프도 마찬가지입니다. 나는 내가 뭘 잘못하고 있는지 전혀 모른다. 나는 모든 도움에 행복하다

+0

약간의 조정으로 코드를 시험해 보았습니다. 나에게 이상하게 보이는 것은 화면에서 벗어나는보기의 프레임입니다. 화면이 꺼져 있다면 어떻게 만지지? 일이 작동하는지 확인하려면 배경색 (예 : 빨간색)을 변경하여보기를 볼 수 있도록하고 -size.x를 0으로 변경하여보기가 화면에 표시되도록하는 것이 좋습니다. 게다가 @ 인터페이스 SettingsView가 있지만 @ 구현 FRMSettingsView는 이상한 일입니다. FRMSettingsView 란 무엇입니까? – Maiaux

+0

애니메이션이있는 창에서 움직이는 메뉴입니다. 하지만 어쩌면 문제가있을 수 있습니다 ... 그 힌트를 주셔서 감사합니다 :) 나는 그것을 확인합니다 – Michael

답변

1

약간의 조정만으로 코드가 작동합니다. 나에게 이상하게 보이는 것은 화면에서 벗어나는보기의 프레임입니다. 화면이 꺼져 있다면 어떻게 만지지? 보기를 볼 수 있도록 배경색 (예 : 빨간색)을 변경하고 -size.x를 0으로 변경하여보기가 화면에 표시되도록하십시오.

0

좋아! 문제는 애니메이션에서 내 화면이 화면 안쪽에서 움직이고 있다는 것이 었습니다. 보기가 움직이지만 GesturRrecognizer는 움직이지 않습니다. 뷰의 startPosition을 x = 0 및 y = 0으로 설정하면 작동합니다.

도움 주셔서 감사합니다.

+0

아주 좋아요. 내 의견을 답으로 추가하여 마음에 들지 않으면 받아 들일 수 있도록하겠습니다. – Maiaux

관련 문제