在我的iOS应用中,我需要使用下拉菜单或下拉菜单。我不想使用操作表或选择器视图。
iOS是否有下拉菜单或下拉菜单?
感谢。
答案 0 :(得分:17)
不,iOS SDK中没有这样的东西,这是有充分理由的 - 这些元素在触摸显示器上行动时不够漂亮,时髦且可用得很好。
请考虑使用UIPickerView
或UISegmentedControl
。
但是如果你坚持,请查看Cocoa Controls等网站以获取某些衍生物。其中一些实际上做得很好。
答案 1 :(得分:10)
答案 2 :(得分:7)
我不同意下拉列表在iPad上一定不好。苹果选择器很可怕。但这一切都取决于它们的类型和需要显示的数据量。
我刚刚找到了这个下拉列表,它看起来/执行得非常好: http://blog.lemberg.co.uk/iphone-development/custom-dropdown-list/
答案 3 :(得分:6)
我真的不明白使用"下拉"只要它足够大就可以使用。我创建了一个使用表格视图,它比默认选择器更快,更容易使用,并且视觉上滥用。每当我看到其中一个默认选择器让我感到畏缩,它们看起来很糟糕,而且使用时间太长。它确实没有采用大量代码,我不确定为什么更多人不会使用它们。
基本上你做的是制作一个看起来像下拉的按钮,然后在激活按钮时激活并在表格视图中滑动。正常实现常规委托方法以处理项目选择,然后再将其滑回。
只需确保将表格视图放在其他所有内容之前,这样就不会被其他元素剪切或隐藏。
这取决于你选择的是什么,仍然有些地方我不确定如何避免使用选择器。
答案 4 :(得分:3)
如果您考虑一下,操作表基本上是一个下拉列表。如果你不断向UIActionSheet添加按钮,它最终会变成一个表格。所以只需让你的按钮调用UIActionSheet。
尝试将7个或更多按钮添加到UIActionSheet并观察它变成列表。它方便。这张照片可以用来演示我的意思:
答案 5 :(得分:2)
使用tableview作为KartikArora的建议以及iPad的弹出控制器的组合。
答案 6 :(得分:2)
您可以将一个tableview放在“popover”中。 Popover仅适用于iPad。
正如我上面评论的那样,这种结构可能是你在触摸屏上可以做到的最好的结构。 Think about a dropdown that requires scrolling。默认浏览器行为是单击一次打开菜单,第二次单击同时选择并关闭菜单。
-
但是你不能在触摸设备上完全拥有它,而不是没有一些修改。由于触摸屏没有悬停,要滚动列表,您必须:
答案 7 :(得分:2)
我知道回答这个问题可能要晚9年了,但是iOS现在有一个下拉菜单: https://developer.apple.com/design/human-interface-guidelines/ios/controls/pull-down-menus/
也许您只是超前了...
答案 8 :(得分:1)
不,iOS SDK中没有这样的东西,但您可以使用表格视图作为下拉列表.. 为此你必须解决tableview的框架,并将其显示为下拉列表..
答案 9 :(得分:1)
答案 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/