这是这个的后续行动
question
. 我有一个类似的设置,有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;
}
但这并不像预期的那样有效。非常感谢您的帮助。