Xcode UIgestureRecognitor iOS

Xcode UIgestureRecognitor iOS,xcode,uiview,ios8,uigesturerecognizer,Xcode,Uiview,Ios8,Uigesturerecognizer,我正在尝试将UIGestureRecognitor添加到我的一个视图中。它没有任何接触。这就是我所做的: @interface SettingsView()<UIGestureRecognizerDelegate> @property (nonatomic, strong) UIView *menu; @end @implementation FRMSettingsView - (id)initWithSize:(CGPoint)size { if (self = [su

我正在尝试将UIGestureRecognitor添加到我的一个视图中。它没有任何接触。这就是我所做的:

@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");
}
@接口设置视图()
@属性(非原子,强)UIView*菜单;
@结束
@实现FRMSettingsView
-(id)initWithSize:(CGPoint)大小{
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=是;
[自我添加子视图:自我菜单];
UISweepGestureRecognizer*识别器=[[UISweepGestureRecognizer alloc]initWithTarget:self action:@selector(SwipeRecognizer:)];
recognizer.direction=UISweepGesturerecognizerDirectionRight;
recognizer.numberoftouchsrequired=1;
recognizer.delegate=self;
[self.menu addgesturecognizer:recognizer];
}
回归自我;
}
-(BOOL)手势识别器:(UIGestureRecognitor*)手势识别器应接受触摸:(UITouch*)触摸{
NSLog(@“触摸”);
返回YES;
}
-(无效)SwipeRecognizer:(UISwipeGestureRecognizer*)发送方{
NSLog(“刷卡”);
}
我没有得到任何输出。无论是触摸还是刷卡。
我不知道我做错了什么。我为每一个帮助感到高兴

好吧!问题是我的视图在动画中从屏幕内部移出。视图正在移动,但识别器未移动。当我将视图的起始位置设置为x=0和y=0时,它会工作


谢谢你的帮助,Maaux

只要稍作调整,您的代码就能正常工作。我觉得奇怪的是你的视图框架,它将在屏幕外。如果它在屏幕外,你怎么能触摸它?尝试更改背景颜色(例如,红色),以便您可以看到视图,并将-size.x更改为0,以便视图显示在屏幕上。

我尝试了您的代码,但做了一些小的调整,效果很好。我觉得奇怪的是你的视图框架,它将在屏幕外。如果它在屏幕外,你怎么能触摸它?为了检查工作是否正常,我的建议是更改背景颜色(例如,红色),以便可以看到视图,并将-size.x更改为0,以便视图显示在屏幕上。此外,奇怪的是,您有@interface SettingsView,但有@implementation FRMSettingsView。什么是FRMSettingsView?它是一个在窗口中随动画移动的菜单。但也许会有问题。。。谢谢你的提示:)那么我会好好检查的。我会加上我的评论作为回答,这样你可以接受,如果你不介意的话