diff --git a/ios/RNPinchableView.m b/ios/RNPinchableView.m index 9709f91..61a8188 100644 --- a/ios/RNPinchableView.m +++ b/ios/RNPinchableView.m @@ -90,7 +90,11 @@ - (void)handlePinchGesture:(UIPinchGestureRecognizer *)gestureRecognizer view.layer.anchorPoint = anchorPoint; view.center = center; - view.frame = CGRectMake(absoluteOrigin.x, absoluteOrigin.y, initialFrame.size.width, initialFrame.size.height); + + if (!isnan(absoluteOrigin.x) && !isnan(absoluteOrigin.y)) { + view.frame = CGRectMake(absoluteOrigin.x, absoluteOrigin.y, initialFrame.size.width, initialFrame.size.height); + } + [initialSuperView setNeedsLayout]; [view setNeedsLayout]; } @@ -114,8 +118,13 @@ - (void)handlePinchGesture:(UIPinchGestureRecognizer *)gestureRecognizer transform = CGAffineTransformTranslate(transform, translate.x, translate.y); transform = CGAffineTransformScale(transform, scale, scale); view.transform = transform; - - backgroundView.layer.opacity = MIN(scale - 1., .7); + + CGFloat layerOpacity = MIN(scale - 1., .7); + if (layerOpacity <= 0) { + layerOpacity = .05; + } + + backgroundView.layer.opacity = layerOpacity; lastTouchPoint = currentTouchPoint; }