На данный момент у меня есть окно UIImageView
внутри окна. При загрузке сцены я сохраняю ее положение с помощью:Получить изображение в центре экрана в горизонтальной ориентации
imageView.center
Пользователь может перетащить его. В некоторых случаях элемент возвращается в исходное положение, которое было сохранено. Все это прекрасно работает, когда я держу IPad вертикально.
Когда я держу его горизонтально, хотя я не могу его переместить в это положение, потому что в ландшафтном режиме я не могу использовать положение, которое было сохранено в режиме вертикальной ориентации. это связано с тем, что в Interface Builder я установил элемент для автоматического измерения по отношению к границам (что означает, что элемент находился в центре, а затем вращение 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, которая уже делает то, что я хочу?
Но не существует той же проблемы, когда пользователь прикасается в портретном режиме, и вы сохраняете местоположение, тогда вы также получаете только портретное положение. Когда вы затем перетаскиваете изображение, затем поворачиваетесь в альбомный, тогда элемент должен анимировать назад, он выбирает неправильное положение. Запуск приложения в режиме ландшафта не помогает, потому что вы получаете только положение ландшафта. – JayAr
Исправлено это сейчас, потому что мне также нужен другой UIView в исходном местоположении значка. Этот UIView исправлен, поэтому я просто перетаскиваю значок с возможностью перетаскивания в позицию этого вида. Работает как с пейзажным, так и с портретным режимом. Это своего рода хак, но мне все равно нужно показать этот взгляд. – JayAr