- 追加された行はこの色です。
- 削除された行はこの色です。
[[Programming]]
[[ここ:http://ameblo.jp/xcc/day-20090326.html]]がとても参考になる.
また以下は[[ここ:http://d.hatena.ne.jp/Chabashira/20080322/1206175764]]からの引用.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
// We only support single touches, so get the touch from allTouches
UITouch *touch = [[event allTouches] anyObject];
// Only move the placard view if the touch was in the placard view
if ([touch view] != placardView)
{
// In case of a double tap outside the placard view, update the placard's display string
if ([touch tapCount] == 2)
{
[placardView setupNextDisplayString];
}
return;
}
// Animate the first touch
CGPoint touchPoint = [self convertPoint:[touch locationInView] fromView:placardView];
[self animateFirstTouchAtPoint:touchPoint];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
// If the touch was in the placardView, move the placardView to its location
if ([touch view] == placardView)
{
CGPoint location = [touch locationInView];
location = [self convertPoint:location fromView:placardView];
placardView.center = location;
return;
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
// If the touch was in the placardView, bounce it back to the center
if ([touch view] == placardView)
{
// Disable user interaction so subsequent touches don't interfere with animation
self.userInteractionEnabled = NO;
[self animatePlacardViewToCenter];
return;
}
}