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;
    }
}

SubView でタッチを検出しています。View別のクラスをサブビューとして追加しましたが、このクラスにはUIImageViewon 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

確認する1つのこと:UIImageViewでユーザーインタラクションを有効にするのはなぜですか?イントラクションを無効に設定して、その下のビューがタッチのレスポンダーになるようにします。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 に答える