我正在尝试使用模态演示文稿样式显示视图控制器 - popover。 问题是视图控制器显示拉伸而不调整大小以适应我设置的preferedcontentsize。
这是我显示视图控制器的代码:
let vc = self......
vc.modalPresentationStyle = .Popover
vc.delegate = self
let popover = vc.popoverPresentationController
vc.preferredContentSize = CGSizeMake(360,291)
popover!.sourceView = self.topBarView
popover!.delegate = self
popover!.sourceRect = CGRectMake(0,145,0,0)
popover?.popoverBackgroundViewClass = CustomUIPopoverBackgroundView.self
self.presenetViewController(vc,animated:true,completion:nil)
CustomUIPopoverBackgroundView具有以下相关代码:
override class func contentViewInsets () -> UIEdgeInsets {
return UIEdgeInsets(top:0,left:0,bottom:0,right:0)
}
我将用screentshot更新帖子以说明问题所在。 如果您需要任何其他详细信息,请告诉我。
谢谢
答案 0 :(得分:0)
请注意,iPhone不支持PopOver演示样式,因为水平尺寸类是Compact(iPhone6 + / S上的横向方向是个例外)。 正如UIViewController的文档中提到的那样:
- UIModalPresentationPopover 在水平常规环境中,呈现样式,其中内容以弹出视图显示。背景内容变暗,弹出窗口外的水龙头导致弹出窗口被解除。如果您不想使用tap来关闭popover,可以将一个或多个视图分配给关联的UIPopoverPresentationController对象的passthroughViews属性,您可以从popoverPresentationController属性获取该属性。
在水平紧凑的环境中,此选项与UIModalPresentationFullScreen的行为相同。