CocoaPods trunk is moving to be read-only. Read more on the blog, there are 14 months to go.
| TestsTested | ✗ |
| LangLanguage | SwiftSwift |
| License | MIT |
| ReleasedLast Release | May 2017 |
| SwiftSwift Version | 3.0 |
| SPMSupports SPM | ✗ |
Maintained by Javal Nanda.
Swift version of https://github.com/dopcn/DOPDropDownMenu
Easy to use TableView style dropdown menu.
The only thing you need to do is import JNDropDownMenu, create an instance and add it to your View and conform to its datasource and delegate.
import JNDropDownMenulet menu = JNDropDownMenu(origin: CGPoint(x: 0, y: 64), height: 40)
menu.datasource = self
menu.delegate = self
self.view.addSubview(menu)Just implement datasource and delegate same as that of Tableview
extension ViewController: JNDropDownMenuDelegate, JNDropDownMenuDataSource {
func numberOfColumns(in menu: JNDropDownMenu) -> NSInteger {
return 2
}
func numberOfRows(in column: NSInteger, for forMenu: JNDropDownMenu) -> Int {
switch column {
case 0:
return columnOneArray.count
case 1:
return columnTwoArray.count
default:
return 0
}
}
func titleForRow(at indexPath: JNIndexPath, for forMenu: JNDropDownMenu) -> String {
switch indexPath.column {
case 0:
return columnOneArray[indexPath.row]
case 1:
return columnTwoArray[indexPath.row]
default:
return ""
}
}
func didSelectRow(at indexPath: JNIndexPath, for forMenu: JNDropDownMenu) {
var str = ""
switch indexPath.column {
case 0:
str = columnOneArray[indexPath.row]
break
case 1:
str = columnTwoArray[indexPath.row]
break
default:
str = ""
}
label.text = str + " selected"
}
}Menu width will default to that of screensize.
Customization: There are very minimal customization available currently. You can alter color and font before setting menu datasource as follow:
let menu = JNDropDownMenu(origin: CGPoint(x: 0, y: 64), height: 40)
//customize
menu.textColor = UIColor.red
menu.cellBgColor = UIColor.green
menu.arrowColor = UIColor.black
menu.cellSelectionColor = UIColor.white
menu.textFont = UIFont.boldSystemFont(ofSize: 15.0)
menu.datasource = self
menu.delegate = self
self.view.addSubview(menu)Example folder.Feel free to create a pull request, open an issue or find me on Twitter.