На данный момент у меня есть UIImageView
внутри окна. Когда сцена загружается, я сохраняю ее положение с помощью:
imageView.center
Пользователь может перетаскивать его. В некоторых случаях элемент возвращается в исходное положение, которое было сохранено. Это все отлично работает, когда держу iPad вертикально.
Когда я держу его горизонтально, хотя я не могу переместить его обратно в это положение, потому что в ландшафтном режиме я не могу использовать положение, которое было сохранено в режиме вертикальной ориентации. это связано с тем, что в Интерфейсном Разработчике я установил для элемента автоматический размер относительно границ (то есть, если элемент находился в центре, то при вращении IPad он все еще остается в центре)
Итак, мой вопрос: как я могу получить правильное исходное положение элемента в горизонтальной ориентации?
Я пытался вручную вычислить позицию так:
- (CGPoint)getHorizontalCoordinatesForPoint:(CGPoint)point
{
CGSize size = [[UIScreen mainScreen]applicationFrame].size;
CGFloat relativeX = (point.x / (size.width));
CGFloat relativeY = point.y / (size.height);
CGFloat horizontalScreenX = relativeX * (size.height);
CGFloat horizontalScreenY = relativeY * (size.width);
return CGPointMake(horizontalScreenX, horizontalScreenY);
}
но эта позиция немного отклонена. Я думаю, что это потому, что я не принимаю во внимание размер панели навигации. Есть ли какая-то функция преобразования в ios, которая уже делает то, что я хочу?