Я пытаюсь создать поповер, который позволит пользователям перемещаться между изображениями (есть ли лучший подход к этому, чем использование поповера?).
Прямо сейчас, чтобы сделать поповер, я часами гуглял, как просто сделать прямоугольник в центре экрана. Из интернета мой код:
// get a reference to the view controller for the popover
let popController = UIStoryboard(name: "Event", bundle: nil).instantiateViewController(withIdentifier: "carouselPopover")
// set the presentation style
popController.modalPresentationStyle = UIModalPresentationStyle.popover
let width = view.frame.width
popController.preferredContentSize = CGSize(width: width, height: 300)
// set up the popover presentation controller
popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up
popController.popoverPresentationController?.delegate = self
popController.popoverPresentationController?.sourceView = self.view
popController.popoverPresentationController?.sourceRect = CGRect(x: view.bounds.midX, y: view.bounds.midY, width: 0, height: 0)
popController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
// present the popover
self.present(popController, animated: true, completion: nil)
Однако, по жизни я не могу понять, почему поповер не центрируется
Он теряет свой центр только тогда, когда я устанавливаю предпочтительный размер содержимого popController. Есть мысли?
TL: DR
Я хочу 1) центрировать поповер на экране, 2) сделать соотношение поповеров 1: 1, и 3) сделать ширину поповера пропорциональной ширине родительского экрана. Как я могу сделать это без 1000 строк кода.