【问题标题】:How is this settings popup created? [duplicate]这个设置弹出窗口是如何创建的? [复制]
【发布时间】:2018-05-06 05:24:09
【问题描述】:

我真的很喜欢 Books 应用程序中设置的显示方式,并试图弄清楚它是如何复制的。

Screenshot of Books app with settings shown

这是一个 .actionsheet 以某种方式移动以显示在“设置”图像下,还是在点击时显示的容器视图或其他内容?我对一个基本应用程序仍然处于新手级别,并希望实现它。

【问题讨论】:

  • 这看起来像是一个定制的弹出窗口,是 UIStackView

标签: ios swift


【解决方案1】:

这是 iOS 默认的控制器展示风格。它被称为UIPopOverPresentationController。这是演示控制器上的good article。之后,您可能希望在 UITableView 中为您的选项创建两到三个单元格,并将其添加为情节提要中弹出框的控制器。 您还可以更改弹出箭头指向的位置和方向,当您想要支持您的 iPad 应用程序时可能需要这些。 :)

@IBAction func actionWasTapped(sender: UIBarButtonItem) {
    let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewController(withIdentifier: "PopOverVC")
    vc.modalPresentationStyle = .popover
    let popover: UIPopoverPresentationController = vc.popoverPresentationController!
    popover.barButtonItem = sender
    present(vc, animated: true, completion: nil)
}

【讨论】:

  • 更新了语法谢谢。
【解决方案2】:

这可以通过多种方式完成,您可以通过以下方式创建 UIView 作为 background 使用自定义子视图 (PopOverMenu) 使用 UIBezierPath 来绘制带有角半径视图的箭头

在此弹出窗口上,您可以创建 MultiSection tableview 或 collection View 或任何

  1. 背景作为子视图添加到UIApplication.sharedApplication().keyWindow?.addSubview(background)
  2. 背景有标签手势,当标签在背景上时关闭
  3. 一些关闭以带回用户选择它的数据

【讨论】:

  • 这些都不需要。
  • 我没有提到任何必要的,只是其他人的一种解决方案@rmaddy
  • 但是您提出了一个过于复杂、不必要的解决方案。 iOS 提供了一种简单、标准的方式来将视图控制器呈现为弹出框。请查看链接副本的答案。
  • 好的,谢谢,感谢您的任何注释
猜你喜欢
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2017-08-28
  • 2014-05-26
  • 1970-01-01
  • 2018-05-03
  • 2014-04-05
  • 2021-10-07
相关资源
最近更新 更多