gpt4 book ai didi

ios - 在屏幕外显示一个弹出窗口

转载 作者:行者123 更新时间:2023-11-29 00:26:19 24 4
gpt4 key购买 nike

我正在尝试重现 iOS 上的 YouTube 移动应用在全屏横向模式下播放视频时的效果。只有窗口的顶部(下一个/推荐的视频)是可见的,向上滑动会显示它们与视频重叠(在后台运行)。向下滑动可再次隐藏它们。

所以我在我的视频 Controller 中添加了以下代码,以横向模式显示视频:

    private func showPopover() {
let popoverController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "popoverController")

popoverController.modalPresentationStyle = .popover
popoverController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
popoverController.popoverPresentationController?.delegate = self
let desiredWidth:CGFloat = 200
let desiredHeight:CGFloat = 300

// Initially it's at low right corner
let origin = CGPoint(x: (self.view.superview?.frame.width)! - desiredWidth - 10, y: (self.view.superview?.frame.height)! - 10)
let size = CGSize(width: desiredWidth, height: desiredHeight)
popoverController.popoverPresentationController?.sourceRect = CGRect(origin: origin, size: size)
popoverController.popoverPresentationController?.sourceView = popoverController.view
self.present(popoverController, animated: true, completion: nil)
}

func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}

弹出窗口显示正常,但始终完全显示在屏幕上。我需要它只是部分可见(如果可能的话,只是前 10 个像素)。但是有些东西阻止了 View Controller 以这种方式定位。

screenshot

如何移动弹出窗口以便只有前 10 个像素可见?它应该类似于下图(注意:这是通过编辑图像生成的,而不是以编程方式生成的):

desired state

最佳答案

替换这个:

popoverController.popoverPresentationController?.sourceView = popoverController.view

用这个:

popoverController.popoverPresentationController?.sourceView = self.view

更新

好的,我现在明白了。我的回答是不可能只显示弹出窗口的某些部分。

我的建议是使用 UITableViewController 作为弹出窗口,并使其高度足以显示第一行,即本例中的文本。

然后,在可选 funcscrollViewDidScroll(_scrollView: UIScrollView) 委托(delegate)方法中,实现检测向上滑动以显示和向下滑动以隐藏的逻辑。

关于ios - 在屏幕外显示一个弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com