iOS如何实现下拉列表以及如何关闭它?

     2023-03-12     120

关键词:

【中文标题】iOS如何实现下拉列表以及如何关闭它?【英文标题】:iOS how to implement a drop down list and how to take care of closing it? 【发布时间】:2012-03-12 17:59:38 【问题描述】:

我需要一些关于如何在 iOS 中实现下拉列表类功能的意见。

我想到了一些解决方案,例如使用UITableView 来显示文本项列表。 (在我的情况下,列表可以是静态的也可以是动态的,所以 UITableView 似乎是我的情况的一个不错的选择)。但我无法弄清楚的一件事是如何关闭下拉菜单......

假设在视图的某处打开了这个下拉列表(假设这个视图占据了整个屏幕)。当我点击视图中的其他位置时,下拉菜单一旦打开,应该会被关闭(关闭),就像典型下拉菜单在桌面环境中的工作方式一样。我该怎么做?

一种方法是在视图上收听touchesBegan 事件并查看下拉菜单是否打开 - 这很好,但问题是如果我有按钮之类的东西,当用户点击其中一个时我没有收到视图上的touchesBegan 输入。

我该如何以通用方式解决这个问题?

【问题讨论】:

我会研究 UIPopOverViewController,它完全符合您的需求,我不确定,但它可能仅适用于 iPad。 UIPickerViewController 是在这种情况下应该使用的。下拉菜单在 iPhone 上是没有位置的。这是一部 iPhone,而不是台式电脑。 使用这个github.com/satishazad/SAMenuDropDown 【参考方案1】:

下拉列表通常在 iOS 中使用 UIPickerView 实现。选择器视图可以设置为文本字段的输入视图,它将按住下拉菜单,然后以与键盘相同的方式在屏幕上和屏幕外进行动画处理。

您通常还需要一个 UIToolbar,其中包含一个“完成”按钮作为输入附件视图,它显示在选择器上方,如果您没有自动执行选择,则允许您在做出选择后关闭。

您可以通过选择器视图委托方法或完成按钮的操作方法向文本字段发送resignFirstResponder 来移除选择器。

您将工具栏创建为附件视图,如下所示:

accessoryView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
accessoryView.barStyle = UIBarStyleBlackTranslucent;

UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneTapped:)];

accessoryView.items = [NSArray arrayWithObjects:space,done, nil];

textField.inputAccessoryView = accessoryView;

这将在右侧为您提供一个“完成”按钮,该按钮连接到名为 doneTapped 的操作方法:

【讨论】:

您好 jrturton,感谢您的回答。对于实现下拉列表功能非常有用。我创建了选择器视图并指定为 textfiedl 的输入视图。它工作正常,但我无法解雇pickeview。你提到我需要使用 UIToolbar 持有一个完成按钮,但我不知道如何做到这一点。请您举个简单的例子。【参考方案2】:

试试这个。它可能会有所帮助。

1) Add the UITableView on a transparent UIView. 
2) The UIView should have the same size as the display screen.
3) The UITableView shall take the same small size you have.
4) Implement the touches method as you mentioned for the holding UIView.

【讨论】:

【参考方案3】:

首先,如果你在 iPad 上,UIPopoverViewController 就是专门为此设计的。如果您需要更多自定义的东西,我总是在下拉菜单下方隐藏一个不可见的全屏大小的按钮。它覆盖整个屏幕,当被触摸或下拉菜单消失时,它会隐藏自己。超级简单。

【讨论】:

【参考方案4】:

我发现 github 上的这个项目很有用。 https://github.com/kmdarshan/dropdown

【讨论】:

【参考方案5】:

我为 iOS 创建了一个下拉控件。您可以从下面的 URL 中查看它

https://github.com/iVishal/VSDropdown

【讨论】:

ios - 如何在 iPad 中创建待办事项列表 [关闭]

】ios-如何在iPad中创建待办事项列表[关闭]【英文标题】:ios-howtocreatetodolistiniPad[closed]【发布时间】:2013-02-1410:07:15【问题描述】:我想创建一个应用程序来编写/查看我的to-do列表和与联系人的约会。有谁知道要使用哪个库以及... 查看详情

如何在 iOS 中为 UISearchBar 设置最近的搜索历史下拉列表

】如何在iOS中为UISearchBar设置最近的搜索历史下拉列表【英文标题】:HowtosetarecentsearchhistorydropdownforUISearchBariniOS【发布时间】:2015-10-2410:04:12【问题描述】:我想为UISearchbar设置最近的搜索历史下拉列表。我已经使用UITableView以... 查看详情

这个 iOS 控制是啥以及如何实现它?

】这个iOS控制是啥以及如何实现它?【英文标题】:WhatisthisiOSContolandHowToImplementit?这个iOS控制是什么以及如何实现它?【发布时间】:2012-06-0711:10:53【问题描述】:我很困惑:1)上图所示的控件是什么类型的控件。我尝试了滑块... 查看详情

如何在 IOS 6.0(Iphone) 中通过 jquery 为混合应用程序关闭选择器的 onchange 事件下拉列表

】如何在IOS6.0(Iphone)中通过jquery为混合应用程序关闭选择器的onchange事件下拉列表【英文标题】:HowtoclosedropdownononchangeeventofselectorInIOS6.0(Iphone)byjqueryforHybridapplication【发布时间】:2014-08-1310:00:02【问题描述】:我正在使用Worklight... 查看详情

我如何使用javascript下拉列表中的输出?[关闭]

这看起来像是一个完整的菜鸟,如果你在想,那你就是对的。我正在尝试为我的探路者活动使用有限的编码知识为一些朋友做点什么,我知道,有更简单的方法可以做到,但我想要我可以做的事情,然后发送给所有人,以便他们... 查看详情

如何在外部点击时关闭下拉菜单?

】如何在外部点击时关闭下拉菜单?【英文标题】:HowcanIcloseadropdownonclickoutside?【发布时间】:2016-06-1305:59:01【问题描述】:当用户单击该下拉列表之外的任何位置时,我想关闭我的登录菜单下拉列表,并且我想使用Angular2和Angu... 查看详情

单击任意位置时如何关闭下拉列表

】单击任意位置时如何关闭下拉列表【英文标题】:Howtocloseadropdownlistwhenclickinganywhere【发布时间】:2021-01-1422:35:14【问题描述】:如何关闭单击任意位置时打开的下拉菜单?这段代码:<trclass="inputs-table"><td>Typeobject:</... 查看详情

如何制作下拉类别列表? [关闭]

】如何制作下拉类别列表?[关闭]【英文标题】:Howcanimakeadropdowncategorieslist?[closed]【发布时间】:2019-04-1421:36:46【问题描述】:对于我的网站,我想进行下拉选择。就像在这个网站上https://www.kingjamesbibleonline.org/所以我需要书籍&g... 查看详情

打开引导模式后如何将下拉列表重置为默认值

】打开引导模式后如何将下拉列表重置为默认值【英文标题】:howtoresetdropdownlisttodefaultafteropenthebootstrapmodal【发布时间】:2021-07-1723:22:02【问题描述】:我想要做的是当用户打开模式并从下拉列表中选择选项并关闭它而不做任何... 查看详情

ios过滤选项类似于苹果商店(下拉列表)

...时间】:2013-04-2403:13:19【问题描述】:我正在尝试弄清楚如何制作类似于苹果商店的过滤器选项的过滤器选项。我首先想到的是类似于网站的下拉列表。但它似乎没有在xcode中的对象选项上。想知道我应该从哪里开始才能实现这... 查看详情

在页脚下拉列表中显示“全部”以及页面大小

...脚下拉列表中添加“全部”以及页面大小。所以请告诉我如何显示它。此外,当用户从下拉列表中选择全部时,它将显示所有记录。请参考附件。【问题讨论】:【参考方案1】:如果您使用rowList 查看详情

如何以角度显示带有下拉列表的动态表以及如何将每一行推送到另一个 div

】如何以角度显示带有下拉列表的动态表以及如何将每一行推送到另一个div【英文标题】:Howtoshowthedynamictablewithdropdowninangularandhowtopusheachrowtoanotherdiv【发布时间】:2018-08-0518:52:25【问题描述】:下面是动态数据[id:151,name:\'AlanB.Sh... 查看详情

什么是哈希表以及如何在 C 中创建它? [关闭]

】什么是哈希表以及如何在C中创建它?[关闭]【英文标题】:WhatisahashtableandhowdoyoumakeitinC?[closed]【发布时间】:2015-11-0223:40:42【问题描述】:我有几个关于称为哈希表(也称为关联数组)的数据结构以及它是如何在C中实现的问... 查看详情

当整个列中包含带有下拉列表的单元格时,如何应用搜索(jquerydatatables)?[关闭](代码片段)

当整个列中包含带有下拉列表的单元格时,如何应用搜索(jQueryDataTables)?在我的表中,每列中有一列有下拉列表,我想应用搜索选定的值。答案外部搜索plug-in允许您使用您可能更喜欢的任何标准进行搜索。以下是如何完成的... 查看详情

没有按钮的 UIAlertView 以及如何关闭它

】没有按钮的UIAlertView以及如何关闭它【英文标题】:UIAlertViewwithNObuttonsandhowtocloseit【发布时间】:2012-11-1413:06:13【问题描述】:在我的应用程序获得服务器响应之前,我在警报视图中有活动指示器。该应用程序将数据发送到服... 查看详情

如何在 UITableView 的索引列表中实现放大镜? [关闭]

】如何在UITableView的索引列表中实现放大镜?[关闭]【英文标题】:HowtoimplementamagnifyingglassintheindexlistofanUITableView?[closed]【发布时间】:2019-10-0916:42:41【问题描述】:我想在Swift中的UITableView的索引列表中实现一个放大镜。它应该... 查看详情

建议下拉列表的过滤器通常是如何实现的?

】建议下拉列表的过滤器通常是如何实现的?【英文标题】:Howisthefilterforasuggestdropdownlistusuallyimplemented?【发布时间】:2012-08-1407:33:52【问题描述】:在输入框中输入时,如果有一个下拉菜单或部分显示可能的预测列表,那就太... 查看详情

如何使用来自 Alamofire 发布请求的 SwiftyJSON 填充下拉列表?

】如何使用来自Alamofire发布请求的SwiftyJSON填充下拉列表?【英文标题】:HowtopopulatedropdownlistwithSwiftyJSONfromAlamofirepostrequest?【发布时间】:2022-01-1605:32:42【问题描述】:我有一个下拉列表,我想用来自Alamofire发布请求的数据填充... 查看详情