2014-11-17 2 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, чтобы представление отображалось на экране. Более того, странно, что у вас есть @ interface SettingsView, но @ реализация FRMSettingsView. Что такое FRMSettingsView? – Maiaux

+0

Это меню, которое перемещается в окне с анимацией. Но может быть, может быть проблема ... спасибо за этот намек :) Я проверю это – Michael

ответ

1

С небольшими корректировками ваш код работает. Мне кажется, что выглядит странно, кадр вашего взгляда, который будет за пределами экрана. Если он выключен, как вы можете его коснуться? Попытайтесь изменить цвет фона (например, красный), чтобы вы могли видеть представление, и измените значение -size.x на 0, чтобы изображение было на экране.

0

Хорошо! Проблема заключалась в том, что я с моей точки зрения двигался изнутри с экрана в анимации. Вид перемещается, но не GesturRrecognizer. Когда я устанавливаю startPosition для представления в x = 0 и y = 0, он работает.

Благодарим вас за помощь Maiaux!

+0

Хорошо. Я добавлю свой комментарий в качестве ответа, чтобы вы могли его принять, если вы не против – Maiaux

Смежные вопросы