使用RSSelectionMenu(Swift)实现iOS Dropdown

每个iOS开发人员都想知道为什么没有默认的UIKit组件来显示下拉列表或选择列表的问题? 🤔

当您的团队同时为(Android和iOS)平台开发移动应用程序时,Android开发人员会获得一点优势,因为他们具有Material Design Dropdown菜单。

每次都使用所需的委托,数据源创建UITableView并将其显示为弹出框,这太令人沮丧。 并且当它有多个选择时,会增加代码复杂度。

因此,这是一个更加简单,易于使用但功能强大的可重用控件,可以用作下拉菜单,也可以从Swift中创建的列表中进行多个选择。

让我们看看如何在iOS应用中实现RSSelectionMenu

安装

椰子足

  pod'RSSelectionMenu' 

显示单个选择列表

只需创建带有所需列表的菜单,提供所选项目并显示。

  let数据:[String] = [“ Jack”,“ Rob”,“ Michel”,“ Denial”] 
var selectedNames:[字符串] = []
  //使用数据源创建菜单->此处[String] 
  let menu = RSSelectionMenu(dataSource:data){(单元格,名称,indexPath)在 
  cell.textLabel?.text =名称 
}
  //提供选定的项目 
  menu.setSelectedItems(items:selectedNames){(名称,索引,selected,selectedItems)在 
  selectedNames = selectedItems 
}
  //显示-现在 
menu.show(来自:自我)
  // 要么 
  //显示-推送 
menu.show(style:.push,from:self)

多项选择

猜猜您需要做什么才能拥有多选列表?

只需将样式指定为“ multiple”即可

  let menu = RSSelectionMenu(selectionStyle:.multiple,dataSource:data){(单元格,名称,indexPath)在 
  cell.textLabel?.text =名称 
}

搜索

如果您有很长的项目可供选择,并且可以使用搜索功能,那简直是小菜一碟。

在菜单中显示SearchBar并根据需要实施过滤器。

  //显示带有搜索栏 
  menu.showSearchBar {[弱自我](searchText)->([String])在 

返回self..data.filter({$ 0.lowercased()。starts(with:searchText.lowercased())})?? []
  }