Изменить размер экрана на симуляторе
Мне интересно, можно ли переопределить размер экрана в настройках и перезагрузить ваше приложение.
Я хочу сделать это так, чтобы, например, если у меня был открыт iPhone X, я мог открыть меню отладки в моем приложении и переопределить размер экрана по умолчанию, перезагрузить приложение и сделать его тестируемым как размер Айфон 6.
Я хочу сделать это, чтобы я мог протестировать все размеры экрана без компиляции и запуска приложения на всех разных симуляторах.
Заранее спасибо!
2 ответа
То, что вы просите, не может быть сделано таким образом, только вы можете создать новое окно с другим фреймом, но использовать на экране другого устройства. Но вы можете изменить текущие рамки просмотра контроллеров представления, рассчитав соотношение сторон каждого устройства и изменив высоту просмотра в соответствии с этим, или вы можете сделать прямоугольник с локальными размерами.
Сделайте расширение использовать его везде:
например:
extension UIViewController {
/* With exact value */
func convertTo3_5inch() {
// 320 × 480
if UIScreen.main.bounds.height >= 480 {
self.view.frame = CGRect(x: 0, y: 0, width: 320, height: 480)
self.view.layoutIfNeeded()
}
}
/* With Ratio */
func convertTo16_9ratio() {
// 320 * 568
if UIScreen.main.bounds.height >= 568 {
self.view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: (UIScreen.main.bounds.width*16)/9)
self.view.layoutIfNeeded()
} else {
print("Screen size smaller than the size your are converting to")
}
}
/* call this func in button */
func changeAction() {
let action = UIAlertController(title: "Options", message: nil, preferredStyle: .actionSheet)
action.addAction(UIAlertAction(title: "3.5inch", style: .default, handler: { (action) in
self.convertTo3_5inch()
}))
action.addAction(UIAlertAction(title: "5to8plus", style: .default, handler: { (action) in
self.convertTo16_9ratio()
}))
self.present(action, animated: true, completion: .none)
}
}
Настроить в соответствии с вашими потребностями,
Это невозможно Вам нужно собрать и протестировать, запустив на каждом симуляторе разного размера, который вы хотите протестировать.