Swi*_*ing 4 iphone xcode uiviewcontroller ios swift
如何ViewController在 iOS 中创建这种弹出框样式?我怎样才能使它适合它的内容并且不超出内容框架?
我尝试将其更改modalPresentation为,.popover但据我尝试,它仅适用于 iPad 和 macOS,不适用于 iPhone。我希望有人能帮帮忙
saz*_*azz 14
您必须在 .popover 演示文稿中呈现一个新的 ViewController。
然后您可以根据需要自定义呈现的视图控制器。
主视图控制器应该如下所示:
class ViewController: UIViewController {
@IBAction func buttonClicked(_ sender: Any) {
//get the button frame
/* 1 */
let button = sender as? UIButton
let buttonFrame = button?.frame ?? CGRect.zero
/* 2 */
//Configure the presentation controller
let popoverContentController = self.storyboard?.instantiateViewController(withIdentifier: "PopoverContentController") as? PopoverContentController
popoverContentController?.modalPresentationStyle = .popover
/* 3 */
// Present popover
if let popoverPresentationController = popoverContentController?.popoverPresentationController {
popoverPresentationController.permittedArrowDirections = .up
popoverPresentationController.sourceView = self.view
popoverPresentationController.sourceRect = buttonFrame
popoverPresentationController.delegate = self
if let popoverController = popoverContentController {
present(popoverController, animated: true, completion: nil)
}
}
}
}
extension ViewController: UIPopoverPresentationControllerDelegate {
func adaptivePresentationStyle(for controller: UIPresentationController) -> UIModalPresentationStyle {
return .none
}
func popoverPresentationControllerDidDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) {
}
func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool {
return true
}
}
Run Code Online (Sandbox Code Playgroud)
例如,您将在 PopoverContentController 中添加 TableView
class PopoverContentController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// Custom design&implementation
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11678 次 |
| 最近记录: |