Skip to content

Instantly share code, notes, and snippets.

@jamesrochabrun
Last active April 6, 2017 20:09
Show Gist options
  • Save jamesrochabrun/8d0df8cc4f043121fb6259054c5bf94b to your computer and use it in GitHub Desktop.
Save jamesrochabrun/8d0df8cc4f043121fb6259054c5bf94b to your computer and use it in GitHub Desktop.
//1 Download the assets
https://www.yelp.com/developers/display_requirements
//2 enum to enumerate assets
enum ReviewIcon: NSNumber {
case zeroStar
case oneStar
case oneAndHalfStar
case twoStar
case twoAndHalfStar
case threeStar
case threeAndHalfStar
case fourStar
case fourAndHalfStar
case fiveStar
case unexpectedReview
init(reviewNumber: NSNumber) {
print(reviewNumber)
switch reviewNumber {
case 0 : self = .zeroStar
case 1 : self = .oneStar
case 1.5: self = .oneAndHalfStar
case 2 : self = .twoStar
case 2.5 : self = .twoAndHalfStar
case 3 : self = .threeStar
case 3.5 : self = .threeAndHalfStar
case 4 : self = .fourStar
case 4.5 : self = .fourAndHalfStar
case 5 : self = .fiveStar
default: self = .unexpectedReview
}
}
}
extension ReviewIcon {
var image : UIImage {
switch self {
case .zeroStar: return #imageLiteral(resourceName: "large_0")
case .oneStar: return #imageLiteral(resourceName: "large_1")
case .oneAndHalfStar: return #imageLiteral(resourceName: "large_1_half")
case .twoStar: return #imageLiteral(resourceName: "large_2")
case .twoAndHalfStar: return #imageLiteral(resourceName: "large_2_half")
case .threeStar: return #imageLiteral(resourceName: "large_3")
case .threeAndHalfStar: return #imageLiteral(resourceName: "large_3_half")
case .fourStar: return #imageLiteral(resourceName: "large_4")
case .fourAndHalfStar: return #imageLiteral(resourceName: "large_4_half")
case .fiveStar: return #imageLiteral(resourceName: "large_5")
case .unexpectedReview: return #imageLiteral(resourceName: "large_0")
}
}
}
//3 how to use it
//create an instance of ReviewIcon using the custom initializer and passing the value of the business rating
let reviewIcon = ReviewIcon(reviewNumber: business.rating)
// assing the image to your imageView
ratingView.image = reviewIcon.image
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment