Ответ 1
Каждый UIView имеет свою собственную систему координат. Поэтому, если у вас есть UIView_1, который содержит другой UIView_2, они оба имеют точку (10,10) внутри них.
convertPoint: toView: позволяет разработчику взять точку в одном представлении и преобразовать точку в другую систему координат вида.
Пример: view1 содержит вид2. Верхний левый угол обзора2 находится в точке зрения1 (10,10) или лучше сказать view2.frame.orgin = {10,10}. Это {10,10} базируется в системе координат view1. Пока все хорошо.
Пользователь обращается к view2 в точке {20,20} внутри представления2. Теперь эти координаты находятся в системе координат view2. Теперь вы можете использовать covertPoint: toView: преобразовать {20,20} в систему координат view1. touchPoint = {20,20}
CGPoint pointInView1Coords = [view2 convertPoint:touchPoint toView:view1];
Итак, теперь pointInView1Coords должен быть {30,30} в системах координат view1. Теперь это была простая математика на этом примере, но есть всевозможные вещи, которые способствуют конверсии. Преобразование и масштабирование приходят на ум.
Читайте о рамах, границах и центре UIView. Все они связаны друг с другом, и они имеют дело с системами координат для представления. Это сбивает с толку, пока вы не начнете с ними заниматься. Помните, что этот кадр и центр находятся в исходной системе координат. Границы находятся в системе координат вида.
Джон