• Stars
    star
    183
  • Rank 203,405 (Top 5 %)
  • Language
    Swift
  • License
    Other
  • Created about 7 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The famous iOS search bar with auto completion feature implemented.

Platform Language License

PRESENTATION

This search bar will allow you to offer suggestions words to your users when they are looking for something using default iOS search bar. Enjoy it !

DEMO

Two ways to use this lib :

  • One with a simple array of string (Array<String>)
  • The other with an array of custom object (Array<ModernSearchBarModel>) if you want to get image of each row from an url.
SIMPLE ADVANCED

INSTALLATION

CocoaPods

You can use CocoaPods to install ModernSearchBar by adding it to your Podfile:

pod 'ModernSearchBar'

Manually

  1. Download and drop all *.swift files contained in Pod folder in your project.
  2. Don't forget to import the assets folder too.
  3. Enjoy !

USAGE

1 - Configure StoryBoard (Custom Class)

2 - Configure ViewController

//Import lib on the top of ViewController
import ModernSearchBar

//Create an IBOutlet from your searchBar
 @IBOutlet weak var modernSearchBar: ModernSearchBar!

//Extend your ViewController with 'ModernSearchBarDelegate'
class ViewController: UIViewController, ModernSearchBarDelegate

//Implement the delegation
self.modernSearchBar.delegateModernSearchBar = self

//Set datas to fill the suggestionsView of the searchbar.
//Two ways (you have to choose only one, you can't implement both obviously)

// 1 - With an Array<String>
var suggestionList = Array<String>()
suggestionList.append("Onions")
suggestionList.append("Celery")

self.modernSearchBar.setDatas(datas: suggestionList)

// 2 - With custom Array<ModernSearchBarModel>
var suggestionListWithUrl = Array<ModernSearchBarModel>()
suggestionListWithUrl.append(ModernSearchBarModel(title: "Alpha", url: "https://github.com/PhilippeBoisney/ModernSearchBar/raw/master/Examples%20Url/exampleA.png"))
suggestionListWithUrl.append(ModernSearchBarModel(title: "Bravo", url: "https://github.com/PhilippeBoisney/ModernSearchBar/raw/master/Examples%20Url/exampleB.png"))

self.modernSearchBar.setDatasWithUrl(datas: suggestionListWithUrl)

DELEGATE

ModernSearchBarDelegate inherit from UISearchBarDelegate, so you can find commons methods you already use in your project. Also, I add those methods to handle click actions on suggestionsView.

///Called if you use String suggestion list
func onClickItemSuggestionsView(item: String) {
   print("User touched this item: "+item)
}

///Called if you use Custom Item suggestion list
func onClickItemWithUrlSuggestionsView(item: ModernSearchBarModel) {
   print("User touched this item: "+item.title+" with this url: "+item.url.description)
}

///Called when user touched shadowView
func onClickShadowView(shadowView: UIView) {
   print("User touched shadowView")
}

CUSTOMIZING

//Modify shadows alpha
self.modernSearchBar.shadowView_alpha = 0.8

//Modify the default icon of suggestionsView's rows
self.modernSearchBar.searchImage = ModernSearchBarIcon.Icon.none.image

//Modify properties of the searchLabel
self.modernSearchBar.searchLabel_font = UIFont(name: "Avenir-Light", size: 30)
self.modernSearchBar.searchLabel_textColor = UIColor.red
self.modernSearchBar.searchLabel_backgroundColor = UIColor.black

//Modify properties of the searchIcon
self.modernSearchBar.suggestionsView_searchIcon_height = 40
self.modernSearchBar.suggestionsView_searchIcon_width = 40
self.modernSearchBar.suggestionsView_searchIcon_isRound = false

//Modify properties of suggestionsView
///Modify the max height of the suggestionsView
self.modernSearchBar.suggestionsView_maxHeight = 1000
///Modify properties of the suggestionsView
self.modernSearchBar.suggestionsView_backgroundColor = UIColor.brown
self.modernSearchBar.suggestionsView_contentViewColor = UIColor.yellow
self.modernSearchBar.suggestionsView_separatorStyle = .singleLine
self.modernSearchBar.suggestionsView_selectionStyle = UITableViewCellSelectionStyle.gray
self.modernSearchBar.suggestionsView_verticalSpaceWithSearchBar = 10
self.modernSearchBar.suggestionsView_spaceWithKeyboard = 20

Version

1.5

License

Copyright 2017 Boisney Philippe

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create New Pull Request

Author

Philippe BOISNEY (phil.boisney(@)gmail.com)

More Repositories

1

AlertOnboarding

A simple and attractive AlertView to onboard your users in your amazing world.
Swift
836
star
2

ArchApp

Simple Android app to show how to design a multi-modules MVVM Android app (fully tested)
Kotlin
618
star
3

GithubArchitectureComponents

The implementation of Android "Architecture Components" sample explained by Google : https://developer.android.com/topic/libraries/architecture/guide.html
Java
304
star
4

NoBullshit

A sample project entirely written in Kotlin. Backend/Frontend with Ktor and Android app.
Kotlin
221
star
5

LinearProgressBar

A simple Linear Progress Bar for IOS (Swift 3.0), inspired by Material Design
Swift
150
star
6

Material

Simple Android app to show how to design a Hierarchical Transition in Material Design.
Kotlin
150
star
7

GithubApp

A showcase app showing how to use PagingLibrary with Retrofit, Coroutines, Koin & Testing.
Kotlin
129
star
8

Swift-Slide-Menu

A Slide Menu, written in Swift, inspired by Slide Menu Material Design
Swift
88
star
9

OpenClassrooms---Parcours-Android

Ensemble de documents & mini-projets réalisés durant la formation diplômante d'un an OpenClassrooms (DÉVELOPPEUR·SE D'APPLICATION - ANDROID)
Java
78
star
10

android-multi-modules-navigation-demo

Android demo about navigation on a multi-modules project
Kotlin
65
star
11

SimpleDroidRx

An application that helps you learn and better understand ReactiveX
Java
61
star
12

RetroKotlin

Simple Android app to show how unit testing with MockWebServer and Architecture Components (ViewModel + LiveData)
Kotlin
61
star
13

AlertViewLoveNotification

A simple and attractive AlertView to ask permission to your users for Push Notification.
Swift
37
star
14

SimpleFloatingActionButton

Material design Circular Floating Button Menu (inspired by Google Material Design) for iOS written in Swift 2.0
Swift
23
star
15

RxJava2WithLoader

RxJava2 : Better Handling Rotation with Loaders & ConnectableObservable
Java
12
star
16

AnimatedVectorDrawable_Sketch

3
star
17

SaveMyTrip_OC

Java
1
star