2
首先,这段代码工作正常,它正是我所需要的,但是在审查之后,我错过了一些东西。在屏幕上移动UIView,为什么这个工作?
我们有一张卡。当被触摸时,卡片移动。在某个位置时,它会到达那个位置。
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
...
// Take note of the starting position and current position, both the same
startTouchPoint = pt;
currentTouchPoint = pt;
...
}
-(void) touchesMoved:(NSSet *) touches withEvent:(UIEvent *)event {
...
// As touch moves around the screen, current touch point is
// updated with it's new location
currentTouchPoint = [first locationInView:self];
...
}
-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
...
// If something happens, put card in a given location
cardCurrentlyBeingTouched.xPosition = 300;
cardCurrentlyBeingTouched.yPosition = 150;
...
}
-(void) drawRect:(CGRect)rect {
...
// Card moving around the screen
cardCurrentlyBeingTouched.xPosition += (self.currentTouchPoint.x - startTouchPoint.x);
cardCurrentlyBeingTouched.yPosition += (self.currentTouchPoint.y - startTouchPoint.y);
CGPoint moveToLoc = CGPointMake(cardCurrentlyBeingTouched.xPosition, cardCurrentlyBeingTouched.yPosition);
[self addSubview:[cardCurrentlyBeingTouched uiImageViewAtPoint:moveToLoc rotated:0 withFaceImage:YES]];
startTouchPoint.x = currentTouchPoint.x;
startTouchPoint.y = currentTouchPoint.y;
...
}
所以,在drawRect
,(在任何时候)self.currentTouchPoint.x
相同startTouchPoint.x
(如Y),如何在世界上卡的X和Y位置正在发生变化,如果增量始终为0?(X和Y的位置是CGPoints
,当我将它们打印进行比较时,我打印了浮标)
难道这是精确度问题吗?
这是我的代码,我写它,它的工作原理。但为什么? :)