查看透明度和手势操作(View transparency and Gesture handling)

2019-09-18 09:02发布

目前我正在试图创建一个视图,将处理所有可能发生在我的应用程序的手势。

我想这个观点透明才能把其他视图下面,它们仍然会显示(我不想让他们subbiews处理视图)

该手势操作正常工作,直到我从再设置视图颜色的“clearColor”,它是有视线中消失。 除非我坚持子视图,在这种情况下,姿势仅在子视图击中时发生。

因此,我的问题是:我怎么可能管理有手势事件发生在一个透明的看法?

Answer 1:

尝试这样的事情。 此代码添加两个子视图到主视图“bottomView这是有一个红色的背景,然后‘testView’,这是透明的顶部覆盖‘bottomView’与敲击手势识别器。如果你在挖掘反正‘testView’它会打印出NSLog的消息。我希望帮助。

-(void)viewDidLoad
{
    [super viewDidLoad];

    UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    [bottomView setBackgroundColor:[UIColor redColor]];
    [self.view addSubview:bottomView];    
    UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 150)];
    [testView setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:testView];

    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] 
                                          initWithTarget:self
                                          action:@selector(handleTap:)];
    [tapRecognizer setNumberOfTapsRequired:1];
    [tapRecognizer setDelegate:testView];
    [testView addGestureRecognizer:tapRecognizer];
}

-(void)handleTap:(UITapGestureRecognizer *)sender 
{
     NSLog(@"Tapped Subview");
}


文章来源: View transparency and Gesture handling