Я работаю над приложением, которое позволяет пользователю изменять размер и поворачивать фотографию с помощью UIGestureRecognizers
. У меня есть этот код, который регулирует anchorPoint
на основе которой пользователь применяет штрихи (чтобы выглядеть, как они масштабирования изображения в точке, где их пальцы на самом деле):Как центр влияния anchorPoint в UIView?
- (void)adjustAnchorPointForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
{
UIView *gestureRecognizerView = gestureRecognizer.view;
CGPoint locationInView = [gestureRecognizer locationInView:gestureRecognizerView];
CGPoint locationInSuperview = [gestureRecognizer locationInView:gestureRecognizerView.superview];
gestureRecognizerView.layer.anchorPoint = CGPointMake(locationInView.x/gestureRecognizerView.bounds.size.width, locationInView.y/gestureRecognizerView.bounds.size.height);
gestureRecognizerView.center = locationInSuperview;
}
Позже, я м просто хочет, чтобы вычислить происхождение на основе центра и границ с этим кодом:
CGRect transformedBounds = CGRectApplyAffineTransform(view.bounds, view.transform);
CGPoint origin = CGPointMake(view.center.x - (transformedBounds.size.width * view.layer.anchorPoint.x), view.center.y - (transformedBounds.size.height * view.layer.anchorPoint.y));
и это выходит неправильно (я сравниваю против значения кадра, который по иронии судьбы, как предполагается, должны быть признаны недействительными, но на самом деле есть правильное значение).
Так что в целом мне интересно, что я здесь не рассматриваю? Как anchorPoint
влияет на центр так, как я не могу определить?
Как и [это] (http://ronnqvi.st/about-the-anchorpoint /) –
@ DavidRönnqvist - Спасибо, что было полезно –