jriosdev / iOSDropDown

Drop Down Menu for iOS With Search And Other Awesome Customisation
https://cocoapods.org/pods/iOSDropDown
MIT License
659 stars 150 forks source link
cocoapods dropdown dropdown-menu dropdown-menus dropdownlist ios-swift podfile search swift xcode

iOS DropDown

Version Cocoapods Swift 4.0 License Platform [Star]()

Drop Down With Search for iOS

It's a Swift Library to support Drop Down Menu in iOS

Watch Video on :

Support Search and Return Correct index

Customizing

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Features

  1. Simple UITextField Extension And simple to use , We can Access all properties of UITextField
  2. DropDown Search can be enabled or disabled
  3. Change background color of the List and the selected color as well
  4. Change the maximum height of the List and the height of each Row

Installation

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler.

Once you have your Swift package set up, adding iOSDropDown as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/jriosdev/iOSDropDown.git", .upToNextMajor(from: "0.4.0"))
]

CocoaPods

Use CocoaPods. iOSDropDown is available through CocoaPods. To install it, simply add the following line to your Podfile:

  1. Add pod 'iOSDropDown' to your Podfile.
  2. Install the pod(s) by running pod install.
  3. Add iOSDropDown.framework in Build Phases > Link Binary with Libraries
  4. Add import iOSDropDown in the .swift files where you want to use it

Carthage

Use Carthage.

  1. Create a file name Cartfile.
  2. Add the line github "jriosdev/iOSDropDown".
  3. Run carthage update.
  4. Drag the built iOSDropDown.framework into your Xcode project.

Manual

Just clone and add the following Swift files to your project:

Basic usage ✨

StoryBoard Method

Simply add UITextField to Your ViewCOntroller And Connect @IBOutlet - DropDown Class


@IBOutlet weak var dropDown : DropDown!

// The list of array to display. Can be changed dynamically
dropDown.optionArray = ["Option 1", "Option 2", "Option 3"]
//Its Id Values and its optional
dropDown.optionIds = [1,23,54,22] 

// Image Array its optional
dropDown.ImageArray = [πŸ‘©πŸ»β€πŸ¦³,πŸ™Š,πŸ₯ž]
// The the Closure returns Selected Index and String 
dropDown.didSelect{(selectedText , index ,id) in
self.valueLabel.text = "Selected String: \(selectedText) \n index: \(index)"
}

OR

Code Method

let  dropDown = DropDown(frame: CGRect(x: 110, y: 140, width: 200, height: 30)) // set frame

// The list of array to display. Can be changed dynamically
dropDown.optionArray = ["Option 1", "Option 2", "Option 3"]
// Its Id Values and its optional
dropDown.optionIds = [1,23,54,22] 
// Image Array its optional
dropDown.ImageArray = [πŸ‘©πŸ»β€πŸ¦³,πŸ™Š,πŸ₯ž]

// The the Closure returns Selected Index and String 
dropDown.didSelect{(selectedText , index ,id) in
self.valueLabel.text = "Selected String: \(selectedText) \n index: \(index)"
    }
}

Other Options

Actions

    dropDown.showList()  // To show the Drop Down Menu
    dropDown.hideList() // To hide the Drop Down Menu

Closures

  listWillAppear() {
   //You can Do anything when iOS DropDown willAppear 
  }

 listDidAppear() {
     //You can Do anything when iOS DropDown listDidAppear
 }

 listWillDisappear() {
   //You can Do anything when iOS DropDown listWillDisappear 
 }

  listDidDisappear() {
   //You can Do anything when iOS DropDown listDidDisappear
 }

Custom filter fuction

 // overridable function for filter action

    func searchFilter(text: String, searchText: String) -> Bool {
        // you can add custom filter fuctions as your need, like other than english ..etc
    }

Customizes iOSDropDown πŸ–Œ

You can customizes these properties of the drop down:

Note :

1.After Update the pod just do clean your buld folder 
      Product > Clean Build Folder . 

Author

✨✨If you like my project please Give me a STAR on Github✨✨

If this project help you to reduce develop time, can you offer a cup of coffee :)

paypal

Jishnu Raj T, jriosdev@gmail.com Contact

License

iOSDropDown is available under the MIT license. See the LICENSE file for more info.