Я пытаюсь масштабировать несколько UIViews одновременно с помощью жеста щепотки (на базовом виде). Хотя это выглядело прямо, я сталкиваюсь с трудностями, чтобы заставить его работать должным образом.
Предположим, у меня есть 3 вида, сложенных так
----------------------------------------------
| |
| ------- -------- |
| | | | | |
| | V1 | --------------- | | |
| | | X | v2 | Y | v3 | |
| ------- --------------- | | |
| -------- |
---------------------------------------------
В крайнем случае, я масштабирую каждый из трех видов, вычисляя преобразование с использованием свойства масштаба
CGAffineTransform v1Transform = CGAffineTransformScale( v1.transform,recognizer.scale, recognizer.scale);
v1.transform = v1Transform
CGAffineTransform v2Transform = CGAffineTransformScale( v2.transform,recognizer.scale, recognizer.scale);
v2.transform = v2Transform
CGAffineTransform v3Transform = CGAffineTransformScale( v3.transform,recognizer.scale, recognizer.scale);
v3.transform = v3Transform
И измените центр каждого вида, используя текущий масштаб, как это
CGPoint v1Center = CGPointMake(v1.center.x * recognizer.scale, node.imgView.center.y * recognizer.scale);
CGPoint v2Center = CGPointMake(v2.center.x * recognizer.scale, node.imgView.center.y * recognizer.scale);
CGPoint v3Center = CGPointMake(v3.center.x * recognizer.scale, node.imgView.center.y * recognizer.scale);
v1.cente = v1Center;
v2.center = v2Center;
v3.center = v3Center;
Хотя это масштабирует каждый из 3 видов равномерно, я чувствую, что центральная точка слишком смещена, и масштабирование выглядит более странным. пожалуйста, проверьте приведенный ниже снимок экрана проблемы
Как видите, масштаб работает, как и ожидалось, и все 3 вида масштабируются вместе. Центр по-прежнему проблема. Я хочу, чтобы масштабирование делалось из всех 3-х видов реального места, я не хочу, чтобы они двигались таким образом в GIF.
Есть ли способ? любая помощь очень ценится