点击手势不发射

时间:2015-03-18 15:26:59

标签: ios objective-c

我使用以下代码将手势识别器附加到自定义视图。但由于某种原因,我无法让手势发挥作用。

 for(NSString *option in _options) {

        UIView *blind = [self createBlind:option];
        blind.userInteractionEnabled = YES;
        blind.tag = index;

        [self addSubview:blind];

        [self addGravityBehaviorToBlind:blind];
        [self addCollisionBehaviorToBlind:blind];
        [self addElasticityBehaviorToBlind:blind];
        [self registerGestureRecognizer:blind];

        _spacingY += 44;

        index++;
    }
}

-(void) registerGestureRecognizer:(UIView *) blind {

    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(blindTapped:)];
    [blind addGestureRecognizer:tapGestureRecognizer];
}

-(void) blindTapped:(UITapGestureRecognizer *) recognizer {  <-- THIS NEVER GETS CALLED

    NSLog(@"blindTapped");


}

由于某些原因,即使我点击盲视图,blindTapped方法也不会被调用。

更新:

是的,我在屏幕上看到了这些视图。视图(盲)是另一种视图中的子视图。父视图将添加到controller.view中。我没有禁用互动的地方。

这是createBlind方法:

-(UIView *) createBlind:(NSString *) option {

    UIView *blind = [[UIView alloc] initWithFrame:CGRectMake(0, _spacingY, 200, 44)];
    blind.layer.borderWidth = 1.0f;
    blind.layer.borderColor = [UIColor whiteColor].CGColor;

    UILabel *optionTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, blind.bounds.size.width, blind.bounds.size.height)];
    optionTitleLabel.text = option;
    optionTitleLabel.font = [UIFont fontWithName:@"GillSans" size:17];
    optionTitleLabel.textColor = [UIColor whiteColor];
    optionTitleLabel.textAlignment = NSTextAlignmentCenter;

    [blind addSubview:optionTitleLabel];

    return blind;
}

我已经移除了所有的重力和UIKit方法,但我仍然无法触发敲击手势。

解决方案:

将自定义视图添加到我的controller.view时,我没有设置框架。一旦框架设置完毕,一切正常。

0 个答案:

没有答案