Преобразуйте координаты между родительским/дочерним UIView после CGAffineTransform

Прежде чем я войду в выполнение всего вручную, что я хотел бы спросить, существует ли некоторая справка для получения от платформы.

У меня есть UIView, который содержит другой UIView с картой. Родительский UIView содержит некоторые легенды для карты. Первоначально я определяю некоторые координаты в представлении карты. например, (100, 40), и место часть графики там в родительском представлении (как гвоздь в Google отображается и т.д.). Родительское представление и дочернее представление являются и 300x200 и имеют тот же источник. Это означает, что (100, 40) та же точка в обоих представлениях.

Теперь я масштабирую и перемещаю ребенка UIView (карта), использование CGAffineTransform и координаты (100, 40) теперь расположено где-то в другом месте. Родительское представление является эффективно маской здесь.

Я могу использовать Матрицу CGAffineTransform или другую часть платформы, чтобы вычислить и сообщить родительскому представлению, куда поместить гвоздь теперь, когда точка переместилась?

т.е. (100, 400) в дочернем представлении по сравнению с (100, 40) в родительском представлении, с чем это выдерживает сравнение после преобразования?

Спасибо за предложения или данную справку.

Анимация ребенка UIView

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    CGAffineTransform transform = CGAffineTransformMakeScale(1.8f, 1.8f);
    worldMap.transform = transform;
    worldMap.bounds.origin = newPos;
    [UIView commitAnimations];
33
задан RickiG 15 January 2010 в 17:11
поделиться

1 ответ

UIView's -ConvertPoint: TOView: и и -ConvertPoint: from Project: должен работать для вас.

73
ответ дан 27 November 2019 в 17:58
поделиться