- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用弹出窗口 View Controller ,但我不希望弹出窗口覆盖整个屏幕 (iOS 13)。我试图使用:
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
正在调用该方法,但显示的弹出窗口始终是全屏,即使指定了较小的首选内容大小也是如此。经过大量时间尝试许多不同的事情后,我发现还有另一种方法有 2 个参数并使用了它:
func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
return .none
}
使用此方法使弹出屏幕为指定大小。任何人都知道为什么第二个会起作用而第一个不会。我有几个其他应用程序,我在其中使用第一个没有问题,有什么问题?!!
最佳答案
根据文档:从 iOS 8.3 开始我们应该使用
处理所有特征变化。在哪里
UITraitCollection - The iOS interface environment, defined by traits such as horizontal and vertical size class, display scale, and user interface idiom.
如果我们不在委托(delegate)中实现此方法,UIKit 会调用
方法代替。
所以我猜想在您的应用程序中,您尝试使用 UITraitCollection horizontalSizeClass、verticalSizeClass、displayScale 和 userInterfaceIdiom 属性创建自适应界面并访问特定特征值。这就是为什么您应该实现adaptivePresentationStyle(for:traitCollection:)。
关于ios - UIPopoverPresentationControllerDelegate 协议(protocol)的 2 个 adaptivePresentationStyle 方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59363428/
弹出框的最大问题之一是委托(delegate)的解除方法( -[popoverPresentationControllerShouldDismissPopover:] , -[popoverPrese
我尝试使用 UIPopoverPresentationController。对于演示,我需要分配委托(delegate) (UIPopoverPresentationControllerDelegat
我正在尝试使用 Xcode(版本 9.1 9B55)Master-Detail 模板创建一个项目,为 iPhone 和 iPad 使用一个 Storyboard。 我想使用内置的 popover se
即使在设置协议(protocol)和委托(delegate)之后,我尝试从 UIPopoverPresentationController 取回一些东西也失败了。 我将自定义委托(delegate)
我正在使用弹出窗口 View Controller ,但我不希望弹出窗口覆盖整个屏幕 (iOS 13)。我试图使用: func adaptivePresentationStyle(for contro
我是一名优秀的程序员,十分优秀!