From 74b522ac6e6dab8b555068f1ecac55362d79206e Mon Sep 17 00:00:00 2001 From: "Justin R. Miller" Date: Wed, 5 Feb 2014 13:49:55 -0500 Subject: [PATCH 1/5] add 4" device launch image --- ios/img/Default-568h@2x.png | Bin 0 -> 18594 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ios/img/Default-568h@2x.png diff --git a/ios/img/Default-568h@2x.png b/ios/img/Default-568h@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0891b7aabfcf3422423b109c8beed2bab838c607 GIT binary patch literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 From e7dd28f6e04b360e9e094637e298cfc336fac533 Mon Sep 17 00:00:00 2001 From: "Justin R. Miller" Date: Wed, 5 Feb 2014 14:35:40 -0500 Subject: [PATCH 2/5] scale iOS pinches at gesture center --- ios/MBXViewController.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ios/MBXViewController.mm b/ios/MBXViewController.mm index 560cbd292..8ed1136ee 100644 --- a/ios/MBXViewController.mm +++ b/ios/MBXViewController.mm @@ -199,7 +199,9 @@ class MBXMapView CGFloat newZoom = self.zoom + (pinch.scale > 1 ? (pinch.scale / tolerance) : ((1 - pinch.scale) * -tolerance)); - mapView->map.setScale(powf(2, newZoom)); + double scale = mapView->map.getScale(); + double new_scale = powf(2, newZoom); + mapView->map.scaleBy(new_scale / scale, [pinch locationInView:pinch.view].x, [pinch locationInView:pinch.view].y); } } From 74f3e5715acfece4e7c128bd3d3ce3706330eda2 Mon Sep 17 00:00:00 2001 From: "Justin R. Miller" Date: Wed, 5 Feb 2014 14:38:44 -0500 Subject: [PATCH 3/5] simplify gesture points --- ios/MBXViewController.mm | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/ios/MBXViewController.mm b/ios/MBXViewController.mm index 8ed1136ee..b03594324 100644 --- a/ios/MBXViewController.mm +++ b/ios/MBXViewController.mm @@ -150,21 +150,13 @@ class MBXMapView - (void)handleDoubleTapGesture:(UITapGestureRecognizer *)doubleTap { if (doubleTap.state == UIGestureRecognizerStateEnded) - { - CGPoint gesturePoint = [doubleTap locationInView:doubleTap.view]; - - mapView->map.scaleBy(2, gesturePoint.x, gesturePoint.y); - } + mapView->map.scaleBy(2, [doubleTap locationInView:doubleTap.view].x, [doubleTap locationInView:doubleTap.view].y, 0.5); } - (void)handleTwoFingerTapGesture:(UITapGestureRecognizer *)twoFingerTap { if (twoFingerTap.state == UIGestureRecognizerStateEnded) - { - CGPoint gesturePoint = [twoFingerTap locationInView:twoFingerTap.view]; - - mapView->map.scaleBy(0.5, gesturePoint.x, gesturePoint.y); - } + mapView->map.scaleBy(0.5, [twoFingerTap locationInView:twoFingerTap.view].x, [twoFingerTap locationInView:twoFingerTap.view].y, 0.5); } - (void)handleLongPressGesture:(UILongPressGestureRecognizer *)longPress From dd3687061db552517ad9687933e1b75bdc3c791f Mon Sep 17 00:00:00 2001 From: "Justin R. Miller" Date: Wed, 5 Feb 2014 15:51:44 -0500 Subject: [PATCH 4/5] speed up pinch gestures per @gundersen --- ios/MBXViewController.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/MBXViewController.mm b/ios/MBXViewController.mm index b03594324..5e6cd5f18 100644 --- a/ios/MBXViewController.mm +++ b/ios/MBXViewController.mm @@ -187,7 +187,7 @@ class MBXMapView } else if (pinch.state == UIGestureRecognizerStateChanged) { - CGFloat tolerance = 3; + CGFloat tolerance = 2; CGFloat newZoom = self.zoom + (pinch.scale > 1 ? (pinch.scale / tolerance) : ((1 - pinch.scale) * -tolerance)); From 61c69f587283fc3f398e9521c5b30cf32632851a Mon Sep 17 00:00:00 2001 From: "Justin R. Miller" Date: Wed, 5 Feb 2014 15:59:16 -0500 Subject: [PATCH 5/5] fixes #42: allow for simultaneous pan, pinch, and rotate --- ios/MBXViewController.mm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ios/MBXViewController.mm b/ios/MBXViewController.mm index 5e6cd5f18..b61171397 100644 --- a/ios/MBXViewController.mm +++ b/ios/MBXViewController.mm @@ -16,7 +16,7 @@ #include #include -@interface MBXViewController () +@interface MBXViewController () @property (nonatomic) EAGLContext *context; @property (nonatomic) CGPoint center; @@ -83,6 +83,7 @@ class MBXMapView mapView->init(); UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGesture:)]; + pan.delegate = self; [self.view addGestureRecognizer:pan]; UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTapGesture:)]; @@ -105,9 +106,11 @@ class MBXMapView [self.view addGestureRecognizer:threeFingerLongPress]; UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinchGesture:)]; + pinch.delegate = self; [self.view addGestureRecognizer:pinch]; UIRotationGestureRecognizer *rotate = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotateGesture:)]; + rotate.delegate = self; [self.view addGestureRecognizer:rotate]; } @@ -209,6 +212,11 @@ class MBXMapView } } +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer +{ + return YES; +} + CADisplayLink *displayLink; MBXMapView *mapView; NSOperationQueue *queue;