From 3074c1f6ab26c540eb7e181e4da4237854df63df Mon Sep 17 00:00:00 2001 From: muwan Date: Fri, 22 Jul 2016 20:34:05 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=87=8A=E6=94=BE=E5=90=8E=E9=87=8D?= =?UTF-8?q?=E6=96=B0=E8=AE=A1=E7=AE=97r1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了一下下,在第一次拖拽结束后,没有计算r1,导致第二次拖拽释放没有路线现实 --- KYCuteViewDemo/KYCuteView.m | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/KYCuteViewDemo/KYCuteView.m b/KYCuteViewDemo/KYCuteView.m index 5044c1f..943d1dc 100755 --- a/KYCuteViewDemo/KYCuteView.m +++ b/KYCuteViewDemo/KYCuteView.m @@ -59,21 +59,7 @@ - (id)initWithFrame:(CGRect)frame { } - (void)displayLinkAction { - x1 = backView.center.x; - y1 = backView.center.y; - x2 = self.frontView.center.x; - y2 = self.frontView.center.y; - - centerDistance = sqrtf((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); - if (centerDistance == 0) { - cosDigree = 1; - sinDigree = 0; - } else { - cosDigree = (y2 - y1) / centerDistance; - sinDigree = (x2 - x1) / centerDistance; - } - - r1 = oldBackViewFrame.size.width / 2 - centerDistance / self.viscosity; + [self countDistance]; pointA = CGPointMake(x1 - r1 * cosDigree, y1 + r1 * sinDigree); // A pointB = CGPointMake(x1 + r1 * cosDigree, y1 - r1 * sinDigree); // B @@ -158,6 +144,25 @@ - (void)setUp { [self.frontView addGestureRecognizer:pan]; } +- (void)countDistance +{ + x1 = backView.center.x; + y1 = backView.center.y; + x2 = self.frontView.center.x; + y2 = self.frontView.center.y; + + centerDistance = sqrtf((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1)); + if (centerDistance == 0) { + cosDigree = 1; + sinDigree = 0; + } else { + cosDigree = (y2 - y1) / centerDistance; + sinDigree = (x2 - x1) / centerDistance; + } + + r1 = oldBackViewFrame.size.width / 2 - centerDistance / self.viscosity; +} + - (void)handleDragGesture:(UIPanGestureRecognizer *)ges { CGPoint dragPoint = [ges locationInView:self.containerView]; @@ -190,6 +195,8 @@ - (void)handleDragGesture:(UIPanGestureRecognizer *)ges { } completion:^(BOOL finished) { if (finished) { + [self countDistance]; + [self.frontView reset]; backView.hidden = YES; From db9ebfd2c68a53c024b21ffc340d684f6894b91c Mon Sep 17 00:00:00 2001 From: muwan Date: Sat, 23 Jul 2016 19:00:57 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=9C=A8=E9=87=8A=E6=94=BE=E5=90=8E?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E8=AE=A1=E7=AE=97=E8=B7=9D=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在释放后重新计算距离 --- KYCuteViewDemo/KYCuteView.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/KYCuteViewDemo/KYCuteView.m b/KYCuteViewDemo/KYCuteView.m index 943d1dc..c637c1d 100755 --- a/KYCuteViewDemo/KYCuteView.m +++ b/KYCuteViewDemo/KYCuteView.m @@ -195,8 +195,6 @@ - (void)handleDragGesture:(UIPanGestureRecognizer *)ges { } completion:^(BOOL finished) { if (finished) { - [self countDistance]; - [self.frontView reset]; backView.hidden = YES; @@ -204,6 +202,7 @@ - (void)handleDragGesture:(UIPanGestureRecognizer *)ges { [shapeLayer removeFromSuperlayer]; self.frontView.center = oldBackViewCenter; + [self countDistance]; [self AddAniamtionLikeGameCenterBubble]; } }];