Подскажите пожалуйста, как сделать, чтобы изображение которое я разместил как фон приложения, при повороте экрана не переворачивалось, а всегда оставалось в одном положении?
Как закрепить изображение на экране, чтобы оно не переворачивалось?
devlab
#2
Правильно сформулированный вопрос, поможет найти правильный ответ. Что значит “не переворачивалось”? Приведите пример, можно скриншотом и комментариями к нему!
devlab
#4
Уберите возможность ландшафтной ориентации. Оставьте только портретную. Тогда при повороте устройства лейаут не будет пересчитываться по констрейнтам
devlab
#6
Ну тогда программно следите за ориентацией экрана и поворачивайте свое изображение
import UIKit
extension UIImage {
func rotate(radians: CGFloat) -> UIImage {
let rotatedSize = CGRect(origin: .zero, size: size)
.applying(CGAffineTransform(rotationAngle: CGFloat(radians)))
.integral.size
UIGraphicsBeginImageContext(rotatedSize)
if let context = UIGraphicsGetCurrentContext() {
let origin = CGPoint(x: rotatedSize.width / 2.0,
y: rotatedSize.height / 2.0)
context.translateBy(x: origin.x, y: origin.y)
context.rotate(by: radians)
draw(in: CGRect(x: -origin.x, y: -origin.y,
width: size.width, height: size.height))
let rotatedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return rotatedImage ?? self
}
return self
}
}
devlab
#8
switch UIDevice.current.orientation {
case .landscapeLeft, .landscapeRight:
print("landscape")
case .portrait, .portraitUpsideDown:
print("Portrait")
default:
print("other")
}
Maxim
#9
спасибо!
Нашел как определить девайс
let device = UIDevice.current
print(device.name)
А как определить ориентацию при первом открытии? Этот свитч определяет ориентацию при ее изменении, но при открытии упорно выдает Other. Посмотрел документацию, что-то не могу найти подходящего метода или свойства.