Я хочу получить источник scrollView в системе координаты окна. Например, в настоящее время, scollView источник (0,51). Но в системе координаты окна это должно быть 51 + 44 (высота панели навигации) +20 (высота строки состояния) = 115. Средства в системе координаты окна scrollView.frame.origin должны быть (0,115). Я попробовал convertPoint: методы, но получение (0,51) или (0,0) иногда. Предоставьте решение этого.Спасибо
Я попробовал решение TechZen, но безрезультатно. Вместо преобразования начала координат scrollView, я обратился к справке класса UIWindow из документации apple и преобразовал endCenter клавиатуры в систему координат моего представления, используя этот код [self.view convertPoint:endCentre fromView:[UIApplication sharedApplication].keyWindow]
. Этот фрагмент кода сработал и, следовательно, решил мою проблему. Однако, все еще остается вопрос, почему он не дает правильную координату scrollView.origin.So, в основном, я получил обходной путь, конвертируя конечный центр клавиатуры вместо scrollView.origin. О, и я делал все это для того, чтобы вычислить новую высоту моего scrollView, когда клавиатура появляется на экране. Так что, если у кого-то есть решение этой проблемы или какое-либо лучшее решение, пожалуйста, сообщите нам всем.
Похоже, что вы не конвертируете между соответствующими представлениями. Рамка вида устанавливается на координаты его супервида, а не на его собственные внутренние координаты, поэтому если вы пытаетесь преобразовать начало координат вида в координаты окна, вам нужно использовать супервид:
[[self superview] convertPoint:self.frame.origin toView:theWindow];
Однако, еще проще преобразовать нулевую точку из самого вида в окно. Эти две части кода эквивалентны, и поэтому совсем не обязательно использовать начало координат.
[self convertPoint:CGPointZero toView:theWindow];