Какому iPhone соответствует iPad с приложением только для iPhone? - PullRequest
0 голосов
/ 31 мая 2019

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

Недавно я нашел сообщение о сбое в globalinit, указывающее на инициализацию этого типа enum, который интенсивно используется для проектирования и размеров.

static var iPhone = IPhone(height: UIScreen.main.bounds.height)!

Кажется, что устройство iPad не будет соответствовать ни одной из этих высот, так что nil вылетит из приложения (это iPad Air с iOS 11). В симуляторе все устройства iPad, кажется, соответствуют существующему размеру iPhone при запуске приложения только для iPhone.

enum IPhone: String {
  case SE, normal, plus, X, XSMax

  init?(height: CGFloat) {
    switch height {
    case 568: self = .SE
    case 667: self = .normal
    case 736: self = .plus
    case 812: self = .X
    case 896: self = .XSMax
    default:
       return nil
    }
  }
}

Конечно, я никогда не хотел бы возвращать ноль и вместо этого включать возможные размеры экрана iPad, что вызывает вопрос: какой iPhone «имитирует» iPad при запуске моего приложения? Я недавно читал, что начиная с iOS 12, iPad будет отображать приложения iPhone уже не в формате 3/4, а в 16/9. Каков наилучший способ справиться с этим, чтобы любой iPad с этим приложением соответствовал одному из моих существующих дизайнов?

1 Ответ

0 голосов
/ 31 мая 2019

Ниже ссылка говорит о том, что после iOS 12 все приложения только для iPhone будут работать на iPad с разрешением iPhone 6. Измените значение по умолчанию на self = .normal, и я думаю, вам будет хорошо.

https://ioshacker.com/ipad/ios-12-improves-experience-of-using-iphone-apps-on-ipad

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...