gpt4 book ai didi

iphone - UIPopoverController 可以在屏幕上移动吗?

转载 作者:可可西里 更新时间:2023-11-01 04:48:59 26 4
gpt4 key购买 nike

是否可以在 UIPopovercontroller 出现后在屏幕上移动它?
我的应用程序中有一个可以轻微移动的小 View ,我希望 UIPopoverController 可以随它四处移动,而不必在每次移动时都重新呈现 UIPopoverController。这可能吗?

最佳答案

从 iOS 9 开始,“UIPopoverController 已弃用。Popovers 现在作为 UIViewController 演示文稿实现。使用 UIModalPresentationPopover 和 UIPopoverPresentationController 的模式演示样式。”

使用以下内容呈现一个弹出窗口。您可以更改 sourceRect 和 sourceView 的值,但这不是预期的 API 行为。

    DetailViewController *detailVC = self.detailViewController;
detailVC.preferredContentSize = CGSizeMake(420, 92);
detailVC.modalPresentationStyle = UIModalPresentationPopover;


UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame;
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}

[self presentViewController: detailVC animated:YES completion:^{

}];

相反,我建议保留对与弹出窗口一起显示的 View Controller 的引用,关闭弹出窗口并重新显示。

DetailViewController *detailVC = self.detailViewController;
[self dismissViewControllerAnimated:NO completion:^{

UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame; //Update frame
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}

[self presentViewController: detailVC animated:NO completion:^{

}];
}];

关于iphone - UIPopoverController 可以在屏幕上移动吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916798/

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