0

我面临一个相关的问题UITouch。我不知道为什么它不与 if 案例一起使用。

这是代码:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches  anyObject];
    if([touch view] == self.transView)
    {
        NSLog(@"Began");
        CGPoint startLocation    = [touch locationInView:transView];
        startX = startLocation.x;
        startY = startLocation.y;
    }
}

我正在检测子视图上的触摸。我添加了另一个类View作为子视图,这个类包含UIImageView在 background 中。例如

UIImageView *BGImageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"graphBG.png"]];
[BGImageView setContentMode:UIViewContentModeScaleAspectFill];
[BGImageView setFrame:CGRectMake(25, 365, 723, 390)];
[BGImageView setUserInteractionEnabled:YES];
[self.view sendSubviewToBack:BGImageView];
[self.view addSubview:BGImageView];
//[BGImageView release];
myGraph=[[MyGraphControllerView alloc]init];
myGraph.dataForPlot= [[NSMutableArray alloc]init];
for (int i=0; i<[hoursArry count]; i++)
{
    NSMutableDictionary *dataDict=[[NSMutableDictionary alloc]init];
    [dataDict setObject:[dayArray objectAtIndex:i] forKey:@"x"];
    [dataDict setObject:[HoursArray objectAtIndex:i] forKey:@"y"];
    [myGraph.dataForPlot addObject:dataDict];
    [dataDict release];
}
[myGraph.view setFrame:CGRectMake(25, 380, 723, 390)];
//[myGraph.view setBackgroundColor:[UIColor redColor]];
[self.view addSubview:myGraph.view];
}

我已经添加了一个子视图,GraphView但它不起作用。

请帮我。

4

3 回答 3

0

您正在检查它是否正在触摸一些名为 self.transView 的视图

于 2014-04-04T07:29:10.687 回答
0

要确认的一件事:为什么要在 UIImageView 上启用用户交互?设置它的 intraction 禁用,以便它下面的视图现在将成为触摸的响应者。如果它不起作用,请更新,因为我刚刚阅读了您的 3 行代码,您可能还有其他一些问题,从这里可能不清楚。

于 2012-05-03T09:15:31.677 回答
0
//add gesture to mapview-for single touch
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(SLideTheView:)];
[touchableView addGestureRecognizer:tap];
tap.numberOfTapsRequired = 1;

我建议使用手势来检测需要触摸的视图。

于 2012-05-03T09:19:45.960 回答