私の画像は、他のすべての更新に触れる位置の下にレンダリングされているように見えます。それ以外の場合は、期待どおりに機能します。
タッチ位置にちらつくことなく、最後に移動したときからオフセット量だけ画像を移動させたいです。どうやってやるの?
コードは次のとおりです。
int xposStamp;
int yposStamp;
int lastxposStamp;
int lastyposStamp;
- (void) touchesEnded: (NSSet *) touches
withEvent: (UIEvent *) event
{
lastxposStamp = xposStamp;
lastyposStamp = yposStamp;
NSLog(@"touchesEndedCalled");
}
- (void) touchesMoved: (NSSet *) touches
withEvent: (UIEvent *) event
{
if([touches count] == 1){
CGPoint touchPoint = [[touches anyObject] locationInView:_photoImageView];
CGRect rect = _draggableImageView.frame;
int xOffset = touchPoint.x-rect.origin.x;
int yOffset = touchPoint.y-rect.origin.y;
rect.origin.x = lastxposStamp+xOffset;
rect.origin.y = lastyposStamp+yOffset;
_draggableImageView.frame = rect;
//xpos and y pos of the stamp
xposStamp = rect.origin.x;
yposStamp = rect.origin.y;
NSLog(@"xpos: %d, ypos: %d", xposStamp, yposStamp);
}
}
また、ここに NSLog があります。
2013-08-19 14:25:52.898 JABImageMerge[2292:907] xpos: -11, ypos: 206
2013-08-19 14:25:52.914 JABImageMerge[2292:907] xpos: 133, ypos: 204
2013-08-19 14:25:52.930 JABImageMerge[2292:907] xpos: -16, ypos: 215
2013-08-19 14:25:52.946 JABImageMerge[2292:907] xpos: 128, ypos: 212
2013-08-19 14:25:52.962 JABImageMerge[2292:907] xpos: -19, ypos: 222
2013-08-19 14:25:52.978 JABImageMerge[2292:907] xpos: 124, ypos: 218
2013-08-19 14:25:52.994 JABImageMerge[2292:907] xpos: -21, ypos: 225
2013-08-19 14:25:53.010 JABImageMerge[2292:907] xpos: 121, ypos: 221
2013-08-19 14:25:53.026 JABImageMerge[2292:907] xpos: -22, ypos: 226
2013-08-19 14:25:53.042 JABImageMerge[2292:907] xpos: 120, ypos: 222
2013-08-19 14:25:53.058 JABImageMerge[2292:907] xpos: -21, ypos: 227
2013-08-19 14:25:53.074 JABImageMerge[2292:907] touchesEndedCalled
このコードを使用するデモ アプリをセットアップするには:
- photoImageView はイメージビューです。
- draggableImageView はイメージビューです。
- UIGestureRecognizerDelegate を実装しました
誰かがこの難しい問題で私を助けてくれることを願っています. 私は最も数学的なプログラマーではありません。