2

タッチポイントを見つけるのに問題があります。

loadView()16 個のタイル (16 ) を設定する関数がありUIImageViewます。

次に、関数で:

- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event
{
    // Retrieve the touch point

    UITouch *touch=[[event allTouches]anyObject];
    CGPoint point= [touch locationInView:touch.view];
    CGRect frame = [self frame];  // Error this Line
}

フレーム原点を使用してどのフレーム/タイルが押されているかを特定するためにフレームを使用しました。

しかし、この行:

CGRect frame = [self frame];

私を夢中にさせます。Plz 誰かが私に何をすべきか教えてください。お願いします。

4

3 に答える 3

4

これを使って :

UITouch *touch=[[event allTouches]anyObject];
CGPoint point= [touch locationInView:self.view];
于 2014-01-05T09:15:05.773 に答える
2

UIViewControllerサブクラスのメソッドでこれを実行しようとしているようです。行はおそらく次のようになります。

[self.view frame];
于 2009-10-01T08:54:57.377 に答える
0

私はあなたが何を望んでいるのかまだ少しはっきりしていませんが、これがあなたを助けるかどうか見てみましょう.

別のオブジェクトを移動する場合は、別のクラスを作成して UIView で継承し、子クラスでタッチ関数を定義してみませんか。ヘッダーの例

...
Tile : UIView
...

クラスの実装例

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

}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:[self superview]];

}

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint touchPoint = [touch locationInView:[self superview]];
    self.center = touchPoint;
}
...

または、UIViewController のタッチ ポイントだけが必要な場合。

UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:[self.view]];
于 2014-08-29T21:53:55.037 に答える