【发布时间】:2019-01-05 02:40:42
【问题描述】:
我正在尝试制作一个允许用户在图像之间滑动的弹出框(有没有比使用弹出框更好的方法?)。
现在为了制作弹出框,我花了几个小时在谷歌上搜索如何在屏幕上制作一个矩形中心。我的代码来自互联网:
// 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 行代码,我怎么能做到这一点。
【问题讨论】:
-
什么是 -
let width = view.frame.width打印出来?什么是视图,什么是框架?为什么不使用自动布局?按规则完成你的问题,它缺乏信息 -
如何使用自动布局和弹出框?框架宽度是调用弹出框的父框架的宽度。
-
为什么不将 UICollectionView 与
Scroll DIrection = Horizontal和Paging Enabled一起使用。启用分页后,它将始终位于中心。 -
再一次,我不是在问滚动,我问的是如何使弹出框居中。
-
@AlexKornhauser 我不了解弹出框机制,但您可以通过自定义视图和默认动画轻松实现所需的行为。
标签: ios swift uipopovercontroller