如何创建弹出视图?

Posted

技术标签:

【中文标题】如何创建弹出视图?【英文标题】:How to create a popup view? 【发布时间】:2011-07-05 12:21:21 【问题描述】:

如何在 xcode 4 中以编程方式创建弹出视图? 我正在尝试创建一个弹出视图,其中包含一个 webview 我在视图中添加了一个后退按钮。我想转到按下后退按钮时调用它的上一个视图。 我该怎么做??

【问题讨论】:

你问的是弹出视图吗? iPhone 上没有弹出视图。如果您想制作模态视图,请阅读 Apple 的模态视图指南。 developer.apple.com/library/ios/#featuredarticles/… 为什么不自己构建呢? 【参考方案1】:

使用它并根据需要自定义它们

https://github.com/sonsongithub/PopupView

【讨论】:

【参考方案2】:

步骤:1 - 在 storyboard 中创建新的 VC,在 VC 中创建新的 UIView。将其命名为 (ViewPopupUI),然后在 ViewPopupUI 中声明所需的字段和属性。

步骤:2 - VC 内部

@IBOutlet private weak var viewPopupUI:UIView!
@IBOutlet var btnClose: UIButton!

override func viewDidLoad() 
    super.viewDidLoad()

   self.showViewWithAnimation()

@IBAction func btnCloseAction(_ sender: Any) 

    self.hideViewWithAnimation()

 //MARK: - Animation Method
private func showViewWithAnimation() 

    self.view.alpha = 0
    self.viewPopupUI.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)

    UIView.animate(withDuration: 0.3) 
        self.viewPopupUI.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
        self.view.alpha = 1
    


private func hideViewWithAnimation() 

    UIView.animate(withDuration: 0.3, animations: 

        self.viewPopupUI.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
        self.view.alpha = 0

    , completion: 
        (value: Bool) in

        self.removeFromParent()
        self.view.removeFromSuperview()
    )

来电弹窗

let popupVC = storyboard?.instantiateViewController(withIdentifier: "SchoolEventGoingPopup_VC") as! SchoolEventGoingPopup_VC
    popupVC.strId =  self.dictEventDetails?.object(forKey: "id") as? Int
    view.addSubview(popupVC.view)
    addChildViewController(popupVC)

【讨论】:

以上是关于如何创建弹出视图?的主要内容,如果未能解决你的问题,请参考以下文章

弹出其他视图控制器时如何更改弹出视图大小

如何创建一个动态弹出并扩展其超级视图大小的子视图。 (在代码中)

如何在 Swift iOS 中创建一个通用的弹出视图控制器

如何在 iPhone 中使用 UIBezierPath 创建像 UIPopover 这样的视图?

如何在swiftui中的navigationitems下面创建一个弹出菜单

在 Interface Builder 中为 Iphone 创建弹出视图控制器