Skip to content

Another rating view to share your feelings. 🎭

License

Notifications You must be signed in to change notification settings

hemangshah/Feelings

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Feelings 🎭

Another rating view to share your feelings.

Build Status License Platform Swift 3.x MadeWithLove Awesome-Swift

Installation

IMPORTANT: You will need two images, one is filled and another is unfilled to represents feelings. See this sample images for the same, check it here.

1.Manually - Add FeelingsView.swift class to your Project. All set.

2.CocoaPods: pod 'FeelingsView'

Usage:

Create Programmatically.

//Create Sample Arrays
let rows = ["Quality","Price","Value"]
let columns = ["1 Star","2 Star","3 Star","4 Star","5 Star"]
        
//Create FeelingsView
//Note: You should provide two images for FeelingsView. 1. Filled and 2. Unfilled        
let viewFeeling = FeelingsView.init(frame: CGRect.init(x: 0.0, y: 0.0, width: 300.0, height: 200.0))
viewFeeling.backgroundColor = UIColor.clear
viewFeeling.autoresizingMask = [.flexibleLeftMargin, .flexibleRightMargin, .flexibleTopMargin, .flexibleBottomMargin]
self.view.addSubview(viewFeeling)
viewFeeling.center = self.view.center
    
//Setting fill/unfill images for FeelingsView
viewFeeling.fillImage = UIImage.init(named: "filled.png")!
viewFeeling.unfillImage = UIImage.init(named: "unfilled.png")!
        
//Setting up values for Feelings
viewFeeling.columnTitles = columns
viewFeeling.rowTitles = rows 
    
//Reload
viewFeeling.reloadFeelingView()
        
//Detect selection of Feelings value
viewFeeling.onFilledCompletion = { (row,column) in
    //Note: row and column are the Int which a user tapped in the FeelingsView
    let rowValue = rows[row]
    let columnValue = columns[column]
    print("\(rowValue) -> \(columnValue)")
}

IMPORTANT: For customizations see the example.

Create in Storyboard/XIB.

  1. Add a UIView. Set require size. Add constraints if requires.

  2. Change class type from UIView to FeelingsView.

  1. Apply the properties for FeelingsView.

  1. Create an IBOutlet for FeelingsView. Bind it in IBInspector.

  2. In viewDidLoad or at anyplace where you want provide rows and columns titles.

  3. Reload FeelingsView by calling reloadFeelingView function.

  4. Detect the taps on FeelingsView by implementing onFilledCompletion closure block.

ToDo[s]

  • CocoaPods support

You can watch to Feelings to see continuous updates. Stay tuned.

Have an idea for improvements of this class? Please open an issue.    

Credits

Hemang Shah

You can shoot me an email to contact.

License

The MIT License (MIT)

Read the LICENSE file for details.