Вращение UITextfield с CGAffineTransformMakeRotation не рассчитывается правильно - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь повернуть поле UIText, используя CGAffineTransformMakeRotation, чтобы соответствовать углу треугольника, нарисованного на экране. Как вы можете видеть на картинке, угол поворота не верный.

для вычисления угла я использую: -

viewwidth = topView2.bounds.size.width/2;
viewheight = topView2.bounds.size.height;
angle = atan(viewheight/viewwidth);

, чтобы повернуть текстовое поле, которое я использую: -

 [self->textField7 setTransform:CGAffineTransformMakeRotation(-self->angle)];

результат неудовлетворительный. Вы можете видеть на скриншоте, что текстовое поле не повернуто под тем же углом, что и нарисованная линия. значения в центре скриншота показывают высоту, ширину и угол обзора в радианах из приведенного выше кода.

Может кто-нибудь, пожалуйста, посоветуйте, что я делаю неправильно.

спасибо view screenshot

1 Ответ

0 голосов
/ 08 апреля 2020

Если вы проведете линию вдоль базовой линии 9 579 739 797, она будет продолжаться вплоть до середины 16:40. Мне кажется, что вы используете неправильную высоту:

viewheight = topView2.bounds.size.height;

Похоже, вы либо не учитываете материал в верхней части экрана (зеленая линия и / или панель навигации), либо материал внизу экрана (инди go строка и / или панель вкладок)

...