0

私は最初にオブジェクトを選択する方法を理解しようとしています、それから私はそれを動かすことができます。たとえば、最初に牛に触れて選択したいのですが、次に牛を動かすことができます。その理由は、画面に触れていると、牛と牛の両方が動いているからです1。一度に1頭だけ動かしたいとき。どんな助けでもありがたいです。

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

    UITouch *touch = [touches anyObject];

    CGPoint touchLocation = [touch locationInView:touch.view];

    cow.center = CGPointMake(touchLocation.x, touchLocation.y);

    cow1.center = CGPointMake(touchLocation.x, touchLocation.y);

}
4

3 に答える 3

0

この種のものを実装する方法はたくさんあります。グラフィックがどのように実装されているかによって異なります。特に、次のAppleサンプルコードを確認してください。

http://developer.apple.com/library/ios/#samplecode/Touches/Introduction/Intro.html

于 2012-09-10T01:39:30.580 に答える
0

標準的な解決策は、2つの牛のオブジェクトに個別のジェスチャレコグナイザーを追加することですviewDidLoad

UIPanGestureRecognizer *panCow1 = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveCow:)];
[cow1 addGestureRecognizer:panCow1];
// if non ARC, make sure to add a line that says
// [panCow1 release];

UIPanGestureRecognizer *panCow2 = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveCow:)];
[cow2 addGestureRecognizer:panCow2];
// if non ARC, make sure to add a line that says
// [panCow2 release];

そして、moveCowメソッドは次のようになります。

- (void)moveCow:(UIPanGestureRecognizer *)sender
{
    if (sender.state == UIGestureRecognizerStateChanged)
    {
        CGPoint translate = [sender translationInView:self.view];

        sender.view.center = CGPointMake(sender.view.center.x + translate.x, sender.view.center.y + translate.y);
    }
}

私はこのコードをテストしていませんが、あなたはその考えを理解しています。これは私が一般的に別々のサブビューを移動する方法です...

于 2012-09-10T01:44:02.747 に答える
0

次のように、UIPanGestureRecognizerを使用してみてください。

@synthesize myImage; //UIImageView

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self startMoveImage];
}

-(void) startMoveImage{
    UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    [self.view addGestureRecognizer:panGestureRecognizer];
}

- (void)pan:(UIPanGestureRecognizer *)gesture
{
    if ((gesture.state == UIGestureRecognizerStateChanged) ||
        (gesture.state == UIGestureRecognizerStateEnded)) {

        CGPoint position = [gesture locationInView:[myImage superview]];
        [myImage setCenter:position];
    }
}
于 2012-09-10T01:48:32.383 に答える