0

基本的に、このコードが現在行っていることは、ユーザーがドラッグした場所に応じて Y 軸に沿って画像を上下にドラッグし、元の位置に戻すことです。私の問題は、誰かが UIImageView の中心に直接触れずにドラッグを開始すると、揺れる (非常に滑らかではない) ことです。誰かが UIImageView に触れていて、UIImageView のドラッグを開始すると、タッチ イベントの中心に直接移動するために少し揺れます。

画像が必要な場所に移動するためだけにアニメーションを使用することを考えていましたが、別の方法はありますか?

これが非効率的な方法である場合は申し訳ありません。私はIOSの世界にかなり慣れていません。

ここに私が持っているものがあります:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    //Gets location of UIImageView.
    self.originalFrame = self.foregroundImage.frame;
}
//This method is used for moving the UIImageView along the y axis depending on touch events.
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [[event allTouches] anyObject];
    if([touch view]==self.foregroundImage) {
        CGPoint location = [touch locationInView:self.view];
        location.x=self.foregroundImage.center.x;
        self.foregroundImage.center=location;
    }
}
//This method sets the UIImageView back to its original position.
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    CGRect newFrame = self.foregroundImage.frame;
    newFrame.origin.y = self.originalFrame.origin.y;
    [UIView animateWithDuration:1.1 animations:^{
        self.foregroundImage.frame = newFrame;
    }];
}
4

1 に答える 1