Контроллер модального вида не центрирован на iPad - PullRequest
0 голосов
/ 23 сентября 2019

У меня странная проблема, когда кажется, что представление в представленном контроллере представления не соответствует размеру отображаемого модала, поэтому центр смещается.

У меня есть следующее представлениенастройка контроллера, которая представляет другой вид контроллера модально.На iPhone все работает, как и ожидалось, однако на iPad, когда модал представлен как UIModalPresentationFormSheet, который является стилем представления по умолчанию, модальное представление не измеряется в соответствии с размером листа, который смещается от центра (я полагаю)

Как мне исправить это?

представление контроллера представления:

class ViewController: UIViewController {
  var button: UIButton?
  override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = .red
    self.button = UIButton(frame: CGRect(origin: .zero, size: CGSize(width: 120, height: 40)))
    self.button?.setTitle("Press Me", for: .normal)
    self.button?.addTarget(self, action: #selector(pressedMe), for: .touchUpInside)
    self.button?.center = self.view.center
    self.button?.backgroundColor = .orange
    self.view.addSubview(self.button!)
  }

  @objc func pressedMe() {
    let modal = ModalViewController()
    self.present(modal, animated: true, completion: nil)
  }
}

представление контроллера представления:

class ModalViewController: UIViewController {

  var innerView: UIView?
  override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = .blue
    self.innerView = UIView(frame: CGRect(origin: self.view.center, size: CGSize(width: 20, height: 20)))
    self.innerView!.backgroundColor = .green
    self.view.addSubview(self.innerView!)
  }
}

результат на iPhone: enter image description here результат на iPad: enter image description here

...