Изменить размер экрана на симуляторе

Мне интересно, можно ли переопределить размер экрана в настройках и перезагрузить ваше приложение.

Я хочу сделать это так, чтобы, например, если у меня был открыт 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)
   }
}

Настроить в соответствии с вашими потребностями,

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

Другие вопросы по тегам