适用于iOS的任何下拉或下拉菜单?

时间:2011-12-06 13:38:57

标签: iphone ios ipad

在我的iOS应用中,我需要使用下拉菜单或下拉菜单。我不想使用操作表或选择器视图。

iOS是否有下拉菜单或下拉菜单?

感谢。

11 个答案:

答案 0 :(得分:17)

不,iOS SDK中没有这样的东西,这是有充分理由的 - 这些元素在触摸显示器上行动时不够漂亮,时髦且可用得很好。

请考虑使用UIPickerViewUISegmentedControl

但是如果你坚持,请查看Cocoa Controls等网站以获取某些衍生物。其中一些实际上做得很好。

答案 1 :(得分:10)

您可能需要查看所讨论的PullableView视图here

这是一张样本图像,顶部,底部和左侧都有可拉动的视图。 底部的那个已经打开了。

sample app

答案 2 :(得分:7)

我不同意下拉列表在iPad上一定不好。苹果选择器很可怕。但这一切都取决于它们的类型和需要显示的数据量。

我刚刚找到了这个下拉列表,它看起来/执行得非常好: http://blog.lemberg.co.uk/iphone-development/custom-dropdown-list/

答案 3 :(得分:6)

我真的不明白使用"下拉"只要它足够大就可以使用。我创建了一个使用表格视图,它比默认选择器更快,更容易使用,并且视觉上滥用。每当我看到其中一个默认选择器让我感到畏缩,它们看起来很糟糕,而且使用时间太长。它确实没有采用大量代码,我不确定为什么更多人不会使用它们。

基本上你做的是制作一个看起来像下拉的按钮,然后在激活按钮时激活并在表格视图中滑动。正常实现常规委托方法以处理项目选择,然后再将其滑回。

只需确保将表格视图放在其他所有内容之前,这样就不会被其他元素剪切或隐藏。

这取决于你选择的是什么,仍然有些地方我不确定如何避免使用选择器。

答案 4 :(得分:3)

如果您考虑一下,操作表基本上是一个下拉列表。如果你不断向UIActionSheet添加按钮,它最终会变成一个表格。所以只需让你的按钮调用UIActionSheet。

尝试将7个或更多按钮添加到UIActionSheet并观察它变成列表。它方便。这张照片可以用来演示我的意思:

enter image description here

答案 5 :(得分:2)

使用tableview作为KartikArora的建议以及iPad的弹出控制器的组合。

答案 6 :(得分:2)

您可以将一个tableview放在“popover”中。 Popover仅适用于iPad。

enter image description here

正如我上面评论的那样,这种结构可能是你在触摸屏上可以做到的最好的结构。 Think about a dropdown that requires scrolling。默认浏览器行为是单击一次打开菜单,第二次单击同时选择并关闭菜单

-

但是你不能在触摸设备上完全拥有它,而不是没有一些修改。由于触摸屏没有悬停,要滚动列表,您必须:

  • 添加滚动条或其他内容以阻止触摸意图滚动仅执行“选择并关闭”行为。滚动条与标准触摸屏界面不一致。
  • 要求某种按下'n hold behavior 来执行选择并关闭行为,这是令人讨厌的,也是非标准行为。用户希望立即选择触摸,而不是必须将其保持下来。
  • 或在右上方放置一个OK按钮以关闭窗口,就像Apple在上面显示的Popover中所做的那样。

请参阅all iOS controls here

答案 7 :(得分:2)

我知道回答这个问题可能要晚9年了,但是iOS现在有一个下拉菜单: https://developer.apple.com/design/human-interface-guidelines/ios/controls/pull-down-menus/

也许您只是超前了...

答案 8 :(得分:1)

不,iOS SDK中没有这样的东西,但您可以使用表格视图作为下拉列表.. 为此你必须解决tableview的框架,并将其显示为下拉列表..

答案 9 :(得分:1)

也许你想要一个弹出窗口..

<强> WYPopoverController

https://github.com/nicolaschengdev/WYPopoverController

enter image description here

enter image description here

答案 10 :(得分:1)

下拉菜单已在 iOS 14 中引入。

这是指南的链接:https://developer.apple.com/design/human-interface-guidelines/ios/controls/pull-down-menus/

要从导航栏创建一个简单的下拉菜单,请在代码或故事板中添加一个栏底部项目,然后在 viewDidLoad 中调用它以创建一个简单的菜单:

func setupMenu() {
    let add = UIAction(title: "Add", image: UIImage(systemName: "plus")) { (action) in
        print("Add")
    }
    let edit = UIAction(title: "Edit", image: UIImage(systemName: "pencil")) { (action) in
        print("Edit")
    }
    let delete = UIAction(title: "Delete", image: UIImage(systemName: "minus"), attributes: .destructive) { (action) in
        print("Delete")
    }
 
    let menu = UIMenu(title: "Menu", children: [add, edit, delete])
    barItem.menu = menu
}

您可以在本指南中找到更多详细信息: https://www.appcoda.com/colorpicker-datepicker/