SSS*_*SSS 5 iphone animation ipad uipopovercontroller ios
一旦UIPopovercontroller已经呈现在屏幕上,是否可以将其移动?
我在我的应用程序中有一个小视图,可以稍微移动,我希望UIPopoverController随身携带,而不必每次移动时重新呈现UIPopoverController.这可能吗?
从 iOS 9 开始,“UIPopoverController 已被弃用。Popover 现在被实现为 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:^{
}];
Run Code Online (Sandbox Code Playgroud)
相反,我建议保留对随弹出窗口呈现的视图控制器的引用,关闭弹出窗口并重新呈现。
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:^{
}];
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3212 次 |
| 最近记录: |