Это продолжение вопроса . У меня есть аналогичная установка с n количеством просмотров, и я хочу повернуть их вместе с жестом вращения.
Я знаю, как применить вращение к одному виду, но здесь я хочу повернуть их все из общего центра вместо их собственного.
Итак, я попробовал этот подход
- Рассчитана общая центральная точка всех выбранных видов
- Установить перевод вида, указывающий на этот общий центр
- И повернул представление
Так вот, что я получил
CGPoint newCenter =CGPointZero;
for(UIView *node in self.selectedNodes){
newCenter = CGPointMake(newCenter.x + node.center.x, newCenter.y + node.center.y);
}
newCenter = CGPointMake(newCenter.x/self.selectedNodes.count, newCenter.y/self.selectedNodes.count);
for(UIview *node in self.selectedNodes){
CGAffineTransform newTransform = CGAffineTransformMakeTranslation(groupCenter.x,groupCenter.y);
newTransform = CGAffineTransformRotate( node.transform,recognizer.rotation);
newTransform = CGAffineTransformTranslate(newTransform,-groupCenter.x, -groupCenter.y);
node.transform = newTransform;
}
Но это работает не так, как ожидалось. любая помощь высоко ценится.