CHFilterBar

Filter Bar is an iOS control created with Swift that implement a bar with customisable text boxes that describes an active filter


License
Apache-2.0
Install
pod try CHFilterBar

Documentation

CHFilterBar

Build Status Swift

Filter Bar is an iOS control created with Swift that implement a bar with customisable text boxes that describes an active filter.

Swift

Features

  • Flat Modern Design
  • Highly Customizable
  • Cocoa Touch like usage
  • Closure Base

At a Glance

import CHFilterBar

@IBOutlet var filterBar: CHFilterBar!


let block1 = CHFilterBlock(title:"One")
let block2 = CHFilterBlock(title: "Two")
let block3 = CHFilterBlock(title: "Three")

filterBar.add(block: block1)
filterBar.add(block: block2)
filterBar.add(block: block3)

Installation

pod 'CHFilterBar'

Getting Started

Setting A Simple FilterBar

Add a UIView to your storyboard and set its class to be a CHFilterBar. The crate an outlet to your code.

@IBOutlet var filterBar: CHFilterBar!

Adding Filter Blocks

  • Adding a Blocks:
let block = CHFilterBlock(title:"One")
filterBar.add(block: block)
  • Adding a Block at index:
filterBar.add(block: block, at: 1)
  • Adding a Block with Callbacks:
let block = CHFilterBlock(id: 1, title: "Test", action: { (block) in
    print("Do something")
},close:{ (block) in
    print("Do something Else")
})

filterBar.add(block: block, at: 1)

Removing Filter Bolcks

  • Removing a Block:
filterBar.remove(block: block)

Modyfing Filter Bolcks

  • Modyfing a single a filter Block:
let block = CHFilterBlock(title: "One")

block.font = UIFont.systemFont(ofSize: 12)
block.backgroundColor = UIColor.red
block.cornerRadius = 0
block.closeButtonImage = UIImage(named:"customClose")

filterBar.add(block: block)
  • Modyfing all filter Blocks:
filterBar.blocksFont = UIFont.systemFont(ofSize: 12)
filterBar.blocksBackgroundColor = UIColor.red
filterBar.blocksCornerRadius = 0
filterBar.blocksCloseButtonImage = UIImage(named:"customClose")

Appearance

Supported appearance properties are:

Property Type Description
backgroundColor UIColor Background color
cornerRadius CGFloat Corner radius
closeButtonImage UIImage Close Button Image
textColor UIColor Text color
font UIFont Font
title String Block Title
containerPadding UIEdgeInsest The margins sizes of the block
labelPadding UIEdgeInsest The margins sizes of the lable inside the block

Demo

override func viewDidLoad() {
    super.viewDidLoad()
    let block1 = CHFilterBlock(title: "One")
    block1.backgroundColor = UIColor.red
    filterBar.add(block: block1)

    let block2 = CHFilterBlock(title: "Two")
    block2.backgroundColor = UIColor.blue
    filterBar.add(block: block2)

    let block3 = CHFilterBlock(title: "Three")
    block3.backgroundColor = UIColor.green
    filterBar.add(block: block3)
}

CHFilterBar Screenshot

License

CHFilterBar is under Apached 2.0. You can do what the fuck you want with CHFilterBar. See LICENSE file for more info.