На рисунке 1 у меня есть UIView с именем parentView1 (это представление серого цвета). У него есть подвиды (4 на картинке).
До того, как я применил CGAffineTransformRotate к parentView1, я могу перетащить представление (красная вертикаль) в parentView1, и результат будет таким, как на картинке 2.
Однако, если я сначала сделаю CGAffineTransformRotate (см. код) на parentView1, а затем перетащу, чтобы добавить красный вертикальный вид в 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];
}
Вызов метода getNewPosition2 выше:
[self getNewPosition2:recognizer.view parentView:self.view superParentView:self.parentView1];