在图 1 中,我有一个名为 parentView1 的 UIView(它是灰色视图)。它有子视图(图片中的 4 个)。
在我将 CGAffineTransformRotate 应用到 parentView1 之前,我可以将一个视图(红色垂直)拖放到 parentView1 中,结果如图 2 所示。
但是,如果我首先在 parentView1 上执行 CGAffineTransformRotate(参见代码),然后拖放以将红色垂直视图添加到 parentView1 中,红色垂直视图也会在我下降时立即旋转到与 parentView1 相同的位置(图 3)垂直视图。我不希望它发生。在拖走之前,我需要红色垂直视图与原始视图保持相同的方向。
反过来,同样的效果也会发生:如果 parentView1 已旋转,则将子视图从 parentView1 移动到边界外。
有什么建议吗?
旋转 parentView1 的代码:
self.parentView1.transform = CGAffineTransformRotate(self.parentView1.transform, degreesToRadians(45));
将视图从父视图移动到另一个视图的代码:
-(void)getNewPosition2:(UIView *)viewToConvert parentView:(UIView *)parentViewx superParentView:(UIView *)superParentView
{
CGPoint newPoint = [superParentView convertPoint:viewToConvert.center fromView:parentViewx];
// viewToConvert.layer.position = newPoint;
viewToConvert.center = newPoint;
[viewToConvert removeFromSuperview];
[superParentView addSubview:viewToConvert];
}
调用上面的 getNewPostition2 方法:
[self getNewPosition2:recognizer.view parentView:self.view superParentView:self.parentView1];