2

小さな問題があります。画面上のすべてのタッチを受け取り、それぞれに新しいビデオを生成したいと思います。問題は、ビデオが配置されると、タッチポイントをインターセプトすることです。locationInViewにさまざまな値を入れてみましたが、これまでのところうまくいきませんでした。私は正しい場所を探していますか?

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    CGPoint pointOnScreen = [[touches anyObject] locationInView:self.view];

    C4Movie *player = [C4Movie movieNamed:@"inception.mov"];
    player.shouldAutoplay = YES;
    player.loops = YES;
    player.center = pointOnScreen;
    [self.canvas addMovie:player];

 }
 @end
4

2 に答える 2

3

各ビデオ画面のuserInteractionEnabledプロパティをNOに設定してみてください(ある種のUIViewで保持されていると仮定します)。そうすると、タッチイベントが通過し、ハンドラーによって引き続き受信されます。

于 2013-01-31T04:59:21.953 に答える
3

はい、あなたは適切な場所を探しています、そしてクリスはユーザーの相互作用についてそれを正しく持っています。試してみてください:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    CGPoint pointOnScreen = [[touches anyObject] locationInView:self.view];
    C4Movie *player = [C4Movie movieNamed:@"inception.mov"];
    player.shouldAutoplay = YES;
    player.loops = YES;
    player.center = pointOnScreen;
    player.userInteractionEnabled = NO;
    [self.canvas addMovie:player];
}

ただし、動画の追加で問題が発生します。残念ながら、iOS /ハードウェアでは一度に4つのビデオパイプラインしか実行できないため、すぐにヒットします

指をタッチしてドラッグするときに画面に何かを追加したい場合は、次のメソッド内で上記のコードを実行することもできます。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    //work your magic here
}
于 2013-01-31T05:47:37.200 に答える