├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── EZRatingView.podspec ├── EZRatingView ├── EZRatingView.h └── EZRatingView.m ├── EZRatingViewDemo ├── .clang-format ├── EZRatingViewDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ └── EZRatingViewDemo.xcscheme ├── EZRatingViewDemo.xcworkspace │ └── contents.xcworkspacedata ├── EZRatingViewDemo │ ├── EZAppDelegate.h │ ├── EZAppDelegate.m │ ├── EZMenuViewController.h │ ├── EZMenuViewController.m │ ├── EZOnTheCellViewController.h │ ├── EZOnTheCellViewController.m │ ├── EZPropertiesViewController.h │ ├── EZPropertiesViewController.m │ ├── EZRatingViewDemo-Info.plist │ ├── EZRatingViewDemo-Prefix.pch │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── LaunchImage.launchimage │ │ │ └── Contents.json │ │ └── face.imageset │ │ │ ├── Contents.json │ │ │ └── face@2x.png │ ├── UIImage+EZAdditions.h │ ├── UIImage+EZAdditions.m │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m ├── EZRatingViewDemoTests │ ├── EZRatingViewDemoTests-Info.plist │ ├── EZRatingViewDemoTests.m │ └── en.lproj │ │ └── InfoPlist.strings ├── Launch Screen.storyboard ├── Podfile ├── Podfile.lock ├── Pods │ ├── Headers │ │ ├── Private │ │ │ └── EZRatingView │ │ │ │ └── EZRatingView.h │ │ └── Public │ │ │ └── EZRatingView │ │ │ └── EZRatingView.h │ ├── Local Podspecs │ │ └── EZRatingView.podspec.json │ ├── Manifest.lock │ ├── Pods.xcodeproj │ │ └── project.pbxproj │ └── Target Support Files │ │ ├── EZRatingView │ │ ├── EZRatingView-dummy.m │ │ ├── EZRatingView-prefix.pch │ │ └── EZRatingView.xcconfig │ │ └── Pods-EZRatingViewDemo │ │ ├── Pods-EZRatingViewDemo-acknowledgements.markdown │ │ ├── Pods-EZRatingViewDemo-acknowledgements.plist │ │ ├── Pods-EZRatingViewDemo-dummy.m │ │ ├── Pods-EZRatingViewDemo-frameworks.sh │ │ ├── Pods-EZRatingViewDemo-resources.sh │ │ ├── Pods-EZRatingViewDemo.debug.xcconfig │ │ └── Pods-EZRatingViewDemo.release.xcconfig ├── Screenshot-iOS6.png └── Screenshot.png ├── LICENSE ├── Makefile └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | .DS_Store 3 | */build/* 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | profile 14 | *.moved-aside 15 | DerivedData 16 | .idea/ 17 | *.hmap 18 | *.xccheckout 19 | 20 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | 3 | script: make test 4 | 5 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | CHANGELOG 2 | --------- 3 | 4 | ## 2.0.0 5 | 6 | - Moved appearance configuration from properties to ```markerDict```. 7 | - Added ```continuous``` property. 8 | 9 | ## 1.0.3 10 | 11 | - Add ```minimumValue``` property. (#15) 12 | 13 | ## 1.0.2 14 | 15 | - FIX #14: The star base layer on UITableViewCell disappers when the cell is selected. 16 | - Add the sample, "on the UITableViewCell" 17 | 18 | ## 1.0.1 19 | 20 | - call setNeedsDisplay at setHighlightColor: 21 | 22 | ## 1.0.0 23 | 24 | - UIControlEventValueChanged is triggered on control changing 25 | 26 | ## 0.9.9 27 | 28 | - change selection rounding ```round``` to ```ceil``` 29 | - allow changing the highlight color 30 | 31 | ## 0.9 - 0.9.8 32 | 33 | - released. 34 | 35 | -------------------------------------------------------------------------------- /EZRatingView.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "EZRatingView" 3 | s.version = "2.0.1" 4 | s.summary = "Star mark rating view" 5 | s.description = <<-DESC 6 | Star mark rating view for a review scene. 7 | - Smooth rating (ex. 4.22 -> 4.23) 8 | - Step rating by 1.0 (ex. 3.00 -> 4.00) 9 | - Step rating by 0.5 (ex. 3.00 -> 3.50 -> 4.00) 10 | - Set other unicode character (not star character) 11 | - Set image 12 | - Set color 13 | - Editable & Not Editable 14 | - Easy to Get/Set. 15 | - Compatibility for iOS6, iOS7, iOS8 16 | DESC 17 | s.homepage = "https://github.com/EvianZhow/EZRatingView" 18 | s.screenshots = "https://raw.github.com/EvianZhow/EZRatingView/master/EZRatingViewDemo/Screenshot.png" 19 | s.license = { :type => 'MIT', :file => 'LICENSE' } 20 | s.author = { "Evian Zhow" => "evianzhow@gmail.com" } 21 | s.platform = :ios 22 | s.source = { :git => "https://github.com/EvianZhow/EZRatingView.git", :tag => s.version.to_s } 23 | s.source_files = 'EZRatingView', 'Classes/**/*.{h,m}' 24 | s.framework = 'QuartzCore' 25 | s.requires_arc = true 26 | end 27 | -------------------------------------------------------------------------------- /EZRatingView/EZRatingView.h: -------------------------------------------------------------------------------- 1 | // 2 | // EZRatingView.h 3 | // 4 | 5 | #import 6 | 7 | // TODO: reserved 8 | /* 9 | typedef NS_ENUM(NSUInteger, EZMarkerType) { EZMarkerTypeCharacter = 0, EZMarkerTypeImage = 1 }; 10 | 11 | extern NSString *const EZMarkerTypeKey; // Required, EZMarkerTypeImage always has a higher priority than EZMarkerTypeCharacter 12 | */ 13 | 14 | // EZMarkerTypeCharacter 15 | extern NSString *const EZMarkerHighlightCharacterKey; // Optional, will be used if provided 16 | extern NSString *const EZMarkerMaskCharacterKey; // Required 17 | extern NSString *const EZMarkerCharacterFontKey; // Optional, [UIFont systemFontOfSize:22.0] is used if not provided 18 | 19 | // EZMarkerTypeImage 20 | extern NSString *const EZMarkerHighlightImageKey; // Optional, will be used if provided 21 | extern NSString *const EZMarkerMaskImageKey; // Required 22 | 23 | extern NSString *const EZMarkerBaseColorKey; // Optional, [UIColor darkGrayColor] is used if not provided 24 | extern NSString *const EZMarkerHighlightColorKey; // Optional, [UIColor colorWithRed:1.0 green:0.8 blue:0.0 alpha:1.0] is used if not provided 25 | 26 | IB_DESIGNABLE 27 | @interface EZRatingView : UIControl { 28 | CALayer *_maskLayer; 29 | CALayer *_highlightLayer; 30 | UIImage *_maskImage; 31 | UIImage *_highlightImage; 32 | } 33 | 34 | @property (nonatomic) IBInspectable NSUInteger numberOfStar; 35 | 36 | @property(nonatomic,getter=isContinuous) BOOL continuous; // if YES, value change events are sent any time the value changes during interaction. default = YES 37 | 38 | // Configuration Dictionary 39 | @property (copy, nonatomic) NSDictionary *markerDict; 40 | 41 | // EZMarkerTypeCharacter 42 | @property (readonly, nonatomic) NSString *highlightCharacter; 43 | @property (readonly, nonatomic) NSString *maskCharacter; 44 | @property (readonly, nonatomic) UIFont *markerFont; 45 | 46 | // EZMarkerTypeImage 47 | @property (readonly, nonatomic) UIImage *highlightImage; 48 | @property (readonly, nonatomic) UIImage *maskImage; 49 | 50 | @property (readonly, nonatomic) UIColor *baseColor; 51 | @property (readonly, nonatomic) UIColor *highlightColor; 52 | 53 | // Value 54 | @property (nonatomic) IBInspectable CGFloat value; 55 | @property (nonatomic) IBInspectable CGFloat stepInterval; 56 | @property (nonatomic) IBInspectable CGFloat minimumValue; 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /EZRatingView/EZRatingView.m: -------------------------------------------------------------------------------- 1 | // 2 | // EZRatingView.m 3 | // 4 | 5 | #import "EZRatingView.h" 6 | #import 7 | 8 | NSString *const EZMarkerTypeKey = @"EZMarkerTypeKey"; 9 | 10 | // EZMarkerTypeCharacter 11 | NSString *const EZMarkerHighlightCharacterKey = @"EZMarkerHighlightCharacterKey"; 12 | NSString *const EZMarkerMaskCharacterKey = @"EZMarkerMaskCharacterKey"; 13 | NSString *const EZMarkerCharacterFontKey = @"EZMarkerCharacterFontKey"; 14 | 15 | // EZMarkerTypeImage 16 | NSString *const EZMarkerHighlightImageKey = @"EZMarkerHighlightImageKey"; 17 | NSString *const EZMarkerMaskImageKey = @"EZMarkerMaskImageKey"; 18 | 19 | NSString *const EZMarkerBaseColorKey = @"EZMarkerBaseColorKey"; 20 | NSString *const EZMarkerHighlightColorKey = @"EZMarkerHighlightColorKey"; 21 | 22 | @implementation EZRatingView 23 | 24 | - (void)ezRatingViewInit 25 | { 26 | _continuous = YES; 27 | _numberOfStar = 5; 28 | _stepInterval = 0.0; 29 | _minimumValue = 0.0; 30 | self.backgroundColor = [UIColor clearColor]; 31 | self.userInteractionEnabled = NO; 32 | } 33 | 34 | - (id)initWithFrame:(CGRect)frame 35 | { 36 | if (self = [super initWithFrame:frame]) { 37 | [self ezRatingViewInit]; 38 | } 39 | return self; 40 | } 41 | 42 | - (id)initWithCoder:(NSCoder *)decoder 43 | { 44 | if (self = [super initWithCoder:decoder]) { 45 | [self ezRatingViewInit]; 46 | } 47 | return self; 48 | } 49 | 50 | - (void)sizeToFit 51 | { 52 | [super sizeToFit]; 53 | self.frame = (CGRect){self.frame.origin, self.intrinsicContentSize}; 54 | } 55 | 56 | - (CGSize)intrinsicContentSize 57 | { 58 | return (CGSize){self.maskImage.size.width * _numberOfStar, self.maskImage.size.height}; 59 | } 60 | 61 | - (void)drawRect:(CGRect)rect 62 | { 63 | if (!_maskLayer) { 64 | _maskLayer = [self maskLayer]; 65 | [self.layer addSublayer:_maskLayer]; 66 | } 67 | 68 | if (!_highlightLayer) { 69 | _highlightLayer = [self highlightLayer]; 70 | _highlightLayer.masksToBounds = YES; 71 | [self.layer addSublayer:_highlightLayer]; 72 | } 73 | 74 | CGFloat selfWidth = (self.highlightImage.size.width * _numberOfStar); 75 | CGFloat selfHeight = (self.highlightImage.size.height); 76 | [CATransaction begin]; 77 | [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; 78 | _highlightLayer.frame = (CGRect){CGPointZero, selfWidth * (_value / _numberOfStar), selfHeight}; 79 | [CATransaction commit]; 80 | } 81 | 82 | #pragma mark - Getters 83 | 84 | - (NSString *)highlightCharacter 85 | { 86 | return self.markerDict[EZMarkerHighlightCharacterKey] ?: self.maskCharacter; 87 | } 88 | 89 | - (NSString *)maskCharacter 90 | { 91 | return self.markerDict[EZMarkerMaskCharacterKey] ?: @"\u2605"; 92 | } 93 | 94 | - (UIFont *)markerFont 95 | { 96 | return self.markerDict[EZMarkerCharacterFontKey] ?: [UIFont systemFontOfSize:22.0]; 97 | } 98 | 99 | - (UIColor *)baseColor 100 | { 101 | return self.markerDict[EZMarkerBaseColorKey] ?: [UIColor darkGrayColor]; 102 | } 103 | 104 | - (UIColor *)highlightColor 105 | { 106 | return self.markerDict[EZMarkerHighlightColorKey] ?: [UIColor colorWithRed:1.0 green:0.8 blue:0.0 alpha:1.0]; 107 | } 108 | 109 | - (UIImage *)maskImage 110 | { 111 | if (self.markerDict[EZMarkerMaskImageKey]) { 112 | return self.markerDict[EZMarkerMaskImageKey]; 113 | } else if (_maskImage) { 114 | return _maskImage; 115 | } else { 116 | CGSize size; 117 | if ([self.maskCharacter respondsToSelector:@selector(sizeWithAttributes:)]) { 118 | size = [self.maskCharacter sizeWithAttributes:@{NSFontAttributeName : self.markerFont}]; 119 | } else { 120 | #pragma clang diagnostic push 121 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 122 | size = [self.maskCharacter sizeWithFont:self.markerFont]; 123 | #pragma clang diagnostic pop 124 | } 125 | 126 | UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); 127 | [[UIColor clearColor] set]; 128 | if ([self.maskCharacter respondsToSelector:@selector(drawAtPoint:withAttributes:)]) { 129 | [self.maskCharacter drawAtPoint:CGPointZero 130 | withAttributes:@{NSFontAttributeName : self.markerFont, NSForegroundColorAttributeName : self.baseColor}]; 131 | } else { 132 | #pragma clang diagnostic push 133 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 134 | [self.maskCharacter drawAtPoint:CGPointZero withFont:self.markerFont]; 135 | #pragma clang diagnostic pop 136 | } 137 | UIImage *markImage = UIGraphicsGetImageFromCurrentImageContext(); 138 | UIGraphicsEndImageContext(); 139 | return _maskImage = markImage; 140 | } 141 | } 142 | 143 | - (UIImage *)highlightImage 144 | { 145 | if (self.markerDict[EZMarkerHighlightImageKey]) { 146 | return self.markerDict[EZMarkerHighlightImageKey]; 147 | } else if (self.markerDict[EZMarkerMaskImageKey]) { 148 | return self.markerDict[EZMarkerMaskImageKey]; 149 | } else if (_highlightImage) { 150 | return _highlightImage; 151 | } else { 152 | CGSize size; 153 | if ([self.highlightCharacter respondsToSelector:@selector(sizeWithAttributes:)]) { 154 | size = [self.highlightCharacter sizeWithAttributes:@{NSFontAttributeName : self.markerFont}]; 155 | } else { 156 | #pragma clang diagnostic push 157 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 158 | size = [self.highlightCharacter sizeWithFont:self.markerFont]; 159 | #pragma clang diagnostic pop 160 | } 161 | 162 | UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); 163 | [[UIColor clearColor] set]; 164 | if ([self.highlightCharacter respondsToSelector:@selector(drawAtPoint:withAttributes:)]) { 165 | [self.highlightCharacter drawAtPoint:CGPointZero 166 | withAttributes:@{NSFontAttributeName : self.markerFont, NSForegroundColorAttributeName : self.highlightColor}]; 167 | } else { 168 | #pragma clang diagnostic push 169 | #pragma clang diagnostic ignored "-Wdeprecated-declarations" 170 | [self.highlightCharacter drawAtPoint:CGPointZero withFont:self.markerFont]; 171 | #pragma clang diagnostic pop 172 | } 173 | UIImage *markImage = UIGraphicsGetImageFromCurrentImageContext(); 174 | UIGraphicsEndImageContext(); 175 | return _highlightImage = markImage; 176 | } 177 | } 178 | 179 | #pragma mark - Setters 180 | 181 | - (void)setMarkerDict:(NSDictionary *)markerDict 182 | { 183 | _markerDict = markerDict; 184 | _highlightImage = nil; 185 | _maskImage = nil; 186 | [_highlightLayer removeFromSuperlayer]; 187 | _highlightLayer = nil; 188 | [_maskLayer removeFromSuperlayer]; 189 | _maskLayer = nil; 190 | [self setNeedsDisplay]; 191 | } 192 | 193 | - (void)setStepInterval:(CGFloat)stepInterval 194 | { 195 | _stepInterval = fmax(stepInterval, 0.0); 196 | } 197 | 198 | - (void)setValue:(CGFloat)value 199 | { 200 | if (_value != value) { 201 | _value = fmin(fmax(value, 0.0), _numberOfStar); 202 | [self setNeedsDisplay]; 203 | } 204 | } 205 | 206 | #pragma mark - Operation 207 | 208 | - (CALayer *)maskLayer 209 | { 210 | // Generate Mask Layer 211 | _maskImage = [self maskImage]; 212 | CGFloat markWidth = _maskImage.size.width; 213 | CGFloat markHalfWidth = markWidth / 2; 214 | CGFloat markHeight = _maskImage.size.height; 215 | CGFloat markHalfHeight = markHeight / 2; 216 | 217 | CALayer *markerLayer = [CALayer layer]; 218 | markerLayer.opaque = NO; 219 | for (int i = 0; i < _numberOfStar; i++) { 220 | CALayer *starLayer = [CALayer layer]; 221 | starLayer.contents = (id)_maskImage.CGImage; 222 | starLayer.bounds = (CGRect){CGPointZero, _maskImage.size}; 223 | starLayer.position = (CGPoint){markHalfWidth + markWidth * i, markHalfHeight}; 224 | [markerLayer addSublayer:starLayer]; 225 | } 226 | markerLayer.backgroundColor = [UIColor clearColor].CGColor; 227 | [markerLayer setFrame:(CGRect){CGPointZero, _maskImage.size.width * _numberOfStar, _maskImage.size.height}]; 228 | return markerLayer; 229 | } 230 | 231 | - (CALayer *)highlightLayer 232 | { 233 | // Generate Mask Layer 234 | _highlightImage = [self highlightImage]; 235 | CGFloat markWidth = _highlightImage.size.width; 236 | CGFloat markHalfWidth = markWidth / 2; 237 | CGFloat markHeight = _highlightImage.size.height; 238 | CGFloat markHalfHeight = markHeight / 2; 239 | 240 | CALayer *markerLayer = [CALayer layer]; 241 | markerLayer.opaque = NO; 242 | for (int i = 0; i < _numberOfStar; i++) { 243 | CALayer *starLayer = [CALayer layer]; 244 | starLayer.contents = (id)_highlightImage.CGImage; 245 | starLayer.bounds = (CGRect){CGPointZero, _highlightImage.size}; 246 | starLayer.position = (CGPoint){markHalfWidth + markWidth * i, markHalfHeight}; 247 | [markerLayer addSublayer:starLayer]; 248 | } 249 | markerLayer.backgroundColor = [UIColor clearColor].CGColor; 250 | [markerLayer setFrame:(CGRect){CGPointZero, _highlightImage.size.width * _numberOfStar, _highlightImage.size.height}]; 251 | return markerLayer; 252 | } 253 | 254 | #pragma mark - Event 255 | 256 | - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 257 | { 258 | if (self.userInteractionEnabled) { 259 | [self touchesMoved:touches withEvent:event]; 260 | } 261 | } 262 | 263 | - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 264 | { 265 | CGPoint location = [[touches anyObject] locationInView:self]; 266 | float value = location.x / (_maskImage.size.width * _numberOfStar) * _numberOfStar; 267 | if (_stepInterval != 0.0) { 268 | value = fmax(_minimumValue, ceilf(value / _stepInterval) * _stepInterval); 269 | } else { 270 | value = fmax(_minimumValue, value); 271 | } 272 | [self setValue:value]; 273 | if (self.isContinuous) { 274 | [self sendActionsForControlEvents:UIControlEventValueChanged]; 275 | } 276 | } 277 | 278 | - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 279 | { 280 | [self sendActionsForControlEvents:UIControlEventValueChanged]; 281 | } 282 | 283 | @end 284 | -------------------------------------------------------------------------------- /EZRatingViewDemo/.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: LLVM 2 | UseTab: Never 3 | IndentWidth: 4 4 | BreakBeforeBraces: Linux 5 | AllowShortIfStatementsOnASingleLine: false 6 | IndentCaseLabels: false 7 | ColumnLimit: 160 8 | ObjCSpaceAfterProperty: true 9 | ObjCSpaceBeforeProtocolList: true 10 | AllowShortFunctionsOnASingleLine: false 11 | AllowShortLoopsOnASingleLine: false 12 | AlignTrailingComments: true 13 | KeepEmptyLinesAtTheStartOfBlocks: false 14 | ObjCSpaceAfterProperty: true 15 | ObjCSpaceBeforeProtocolList: true 16 | PointerBindsToType: false 17 | SpacesBeforeTrailingComments: 1 18 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 7593196519EFC2B600506F80 /* EZMenuViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7593196419EFC2B600506F80 /* EZMenuViewController.m */; }; 11 | 7593196A19EFC3E000506F80 /* EZOnTheCellViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7593196919EFC3E000506F80 /* EZOnTheCellViewController.m */; }; 12 | 75BB2054180636FA00BE8680 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB2053180636FA00BE8680 /* Foundation.framework */; }; 13 | 75BB2056180636FA00BE8680 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB2055180636FA00BE8680 /* CoreGraphics.framework */; }; 14 | 75BB2058180636FA00BE8680 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB2057180636FA00BE8680 /* UIKit.framework */; }; 15 | 75BB205E180636FA00BE8680 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 75BB205C180636FA00BE8680 /* InfoPlist.strings */; }; 16 | 75BB2060180636FA00BE8680 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 75BB205F180636FA00BE8680 /* main.m */; }; 17 | 75BB2064180636FA00BE8680 /* EZAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 75BB2063180636FA00BE8680 /* EZAppDelegate.m */; }; 18 | 75BB206A180636FA00BE8680 /* EZPropertiesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 75BB2069180636FA00BE8680 /* EZPropertiesViewController.m */; }; 19 | 75BB206C180636FA00BE8680 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 75BB206B180636FA00BE8680 /* Images.xcassets */; }; 20 | 75BB2073180636FA00BE8680 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB2072180636FA00BE8680 /* XCTest.framework */; }; 21 | 75BB2074180636FA00BE8680 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB2053180636FA00BE8680 /* Foundation.framework */; }; 22 | 75BB2075180636FA00BE8680 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB2057180636FA00BE8680 /* UIKit.framework */; }; 23 | 75BB207D180636FA00BE8680 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 75BB207B180636FA00BE8680 /* InfoPlist.strings */; }; 24 | 75BB207F180636FA00BE8680 /* EZRatingViewDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 75BB207E180636FA00BE8680 /* EZRatingViewDemoTests.m */; }; 25 | 75BB209018063AC200BE8680 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75BB208F18063AC200BE8680 /* QuartzCore.framework */; }; 26 | 8F0B89D81C1A96E80048660D /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8F0B89D71C1A96E80048660D /* Launch Screen.storyboard */; }; 27 | 8F0B89DC1C1A9C010048660D /* UIImage+EZAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0B89DB1C1A9C010048660D /* UIImage+EZAdditions.m */; }; 28 | DD42C0EB438E9AE3F670A713 /* libPods-EZRatingViewDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B8E52B655C027D33B684EA /* libPods-EZRatingViewDemo.a */; }; 29 | /* End PBXBuildFile section */ 30 | 31 | /* Begin PBXContainerItemProxy section */ 32 | 75BB2076180636FA00BE8680 /* PBXContainerItemProxy */ = { 33 | isa = PBXContainerItemProxy; 34 | containerPortal = 75BB2048180636FA00BE8680 /* Project object */; 35 | proxyType = 1; 36 | remoteGlobalIDString = 75BB204F180636FA00BE8680; 37 | remoteInfo = EZRatingViewDemo; 38 | }; 39 | /* End PBXContainerItemProxy section */ 40 | 41 | /* Begin PBXFileReference section */ 42 | 00EE30CED36C17F15B5CAB6C /* Pods-EZRatingViewDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EZRatingViewDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo.debug.xcconfig"; sourceTree = ""; }; 43 | 7593196319EFC2B600506F80 /* EZMenuViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZMenuViewController.h; sourceTree = ""; }; 44 | 7593196419EFC2B600506F80 /* EZMenuViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EZMenuViewController.m; sourceTree = ""; }; 45 | 7593196819EFC3E000506F80 /* EZOnTheCellViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EZOnTheCellViewController.h; sourceTree = ""; }; 46 | 7593196919EFC3E000506F80 /* EZOnTheCellViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EZOnTheCellViewController.m; sourceTree = ""; }; 47 | 75BB2050180636FA00BE8680 /* EZRatingViewDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = EZRatingViewDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | 75BB2053180636FA00BE8680 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 49 | 75BB2055180636FA00BE8680 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 50 | 75BB2057180636FA00BE8680 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 51 | 75BB205B180636FA00BE8680 /* EZRatingViewDemo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "EZRatingViewDemo-Info.plist"; sourceTree = ""; }; 52 | 75BB205D180636FA00BE8680 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 53 | 75BB205F180636FA00BE8680 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 54 | 75BB2061180636FA00BE8680 /* EZRatingViewDemo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "EZRatingViewDemo-Prefix.pch"; sourceTree = ""; }; 55 | 75BB2062180636FA00BE8680 /* EZAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EZAppDelegate.h; sourceTree = ""; }; 56 | 75BB2063180636FA00BE8680 /* EZAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EZAppDelegate.m; sourceTree = ""; }; 57 | 75BB2068180636FA00BE8680 /* EZPropertiesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EZPropertiesViewController.h; sourceTree = ""; }; 58 | 75BB2069180636FA00BE8680 /* EZPropertiesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EZPropertiesViewController.m; sourceTree = ""; }; 59 | 75BB206B180636FA00BE8680 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 60 | 75BB2071180636FA00BE8680 /* EZRatingViewDemoTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EZRatingViewDemoTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 61 | 75BB2072180636FA00BE8680 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 62 | 75BB207A180636FA00BE8680 /* EZRatingViewDemoTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "EZRatingViewDemoTests-Info.plist"; sourceTree = ""; }; 63 | 75BB207C180636FA00BE8680 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 64 | 75BB207E180636FA00BE8680 /* EZRatingViewDemoTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EZRatingViewDemoTests.m; sourceTree = ""; }; 65 | 75BB208F18063AC200BE8680 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 66 | 84B8E52B655C027D33B684EA /* libPods-EZRatingViewDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-EZRatingViewDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 67 | 8F0B89D71C1A96E80048660D /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = "Launch Screen.storyboard"; path = "../Launch Screen.storyboard"; sourceTree = ""; }; 68 | 8F0B89DA1C1A9C010048660D /* UIImage+EZAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+EZAdditions.h"; sourceTree = ""; }; 69 | 8F0B89DB1C1A9C010048660D /* UIImage+EZAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+EZAdditions.m"; sourceTree = ""; }; 70 | 9CE19BE6C35902CCB4A00A38 /* Pods-EZRatingViewDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EZRatingViewDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo.release.xcconfig"; sourceTree = ""; }; 71 | /* End PBXFileReference section */ 72 | 73 | /* Begin PBXFrameworksBuildPhase section */ 74 | 75BB204D180636FA00BE8680 /* Frameworks */ = { 75 | isa = PBXFrameworksBuildPhase; 76 | buildActionMask = 2147483647; 77 | files = ( 78 | 75BB209018063AC200BE8680 /* QuartzCore.framework in Frameworks */, 79 | 75BB2056180636FA00BE8680 /* CoreGraphics.framework in Frameworks */, 80 | 75BB2058180636FA00BE8680 /* UIKit.framework in Frameworks */, 81 | 75BB2054180636FA00BE8680 /* Foundation.framework in Frameworks */, 82 | DD42C0EB438E9AE3F670A713 /* libPods-EZRatingViewDemo.a in Frameworks */, 83 | ); 84 | runOnlyForDeploymentPostprocessing = 0; 85 | }; 86 | 75BB206E180636FA00BE8680 /* Frameworks */ = { 87 | isa = PBXFrameworksBuildPhase; 88 | buildActionMask = 2147483647; 89 | files = ( 90 | 75BB2073180636FA00BE8680 /* XCTest.framework in Frameworks */, 91 | 75BB2075180636FA00BE8680 /* UIKit.framework in Frameworks */, 92 | 75BB2074180636FA00BE8680 /* Foundation.framework in Frameworks */, 93 | ); 94 | runOnlyForDeploymentPostprocessing = 0; 95 | }; 96 | /* End PBXFrameworksBuildPhase section */ 97 | 98 | /* Begin PBXGroup section */ 99 | 7593196619EFC2B900506F80 /* MenuViewController */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 7593196319EFC2B600506F80 /* EZMenuViewController.h */, 103 | 7593196419EFC2B600506F80 /* EZMenuViewController.m */, 104 | ); 105 | name = MenuViewController; 106 | sourceTree = ""; 107 | }; 108 | 7593196719EFC3C100506F80 /* OnTheCellViewController */ = { 109 | isa = PBXGroup; 110 | children = ( 111 | 7593196819EFC3E000506F80 /* EZOnTheCellViewController.h */, 112 | 7593196919EFC3E000506F80 /* EZOnTheCellViewController.m */, 113 | ); 114 | name = OnTheCellViewController; 115 | sourceTree = ""; 116 | }; 117 | 7593196B19EFC42100506F80 /* PropertiesViewController */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 75BB2068180636FA00BE8680 /* EZPropertiesViewController.h */, 121 | 75BB2069180636FA00BE8680 /* EZPropertiesViewController.m */, 122 | ); 123 | name = PropertiesViewController; 124 | sourceTree = ""; 125 | }; 126 | 75BB2047180636FA00BE8680 = { 127 | isa = PBXGroup; 128 | children = ( 129 | 75BB2059180636FA00BE8680 /* EZRatingViewDemo */, 130 | 75BB2078180636FA00BE8680 /* EZRatingViewDemoTests */, 131 | 75BB2052180636FA00BE8680 /* Frameworks */, 132 | 75BB2051180636FA00BE8680 /* Products */, 133 | DD7D1496EFBEBDC955A762E6 /* Pods */, 134 | ); 135 | sourceTree = ""; 136 | }; 137 | 75BB2051180636FA00BE8680 /* Products */ = { 138 | isa = PBXGroup; 139 | children = ( 140 | 75BB2050180636FA00BE8680 /* EZRatingViewDemo.app */, 141 | 75BB2071180636FA00BE8680 /* EZRatingViewDemoTests.xctest */, 142 | ); 143 | name = Products; 144 | sourceTree = ""; 145 | }; 146 | 75BB2052180636FA00BE8680 /* Frameworks */ = { 147 | isa = PBXGroup; 148 | children = ( 149 | 75BB208F18063AC200BE8680 /* QuartzCore.framework */, 150 | 75BB2053180636FA00BE8680 /* Foundation.framework */, 151 | 75BB2055180636FA00BE8680 /* CoreGraphics.framework */, 152 | 75BB2057180636FA00BE8680 /* UIKit.framework */, 153 | 75BB2072180636FA00BE8680 /* XCTest.framework */, 154 | 84B8E52B655C027D33B684EA /* libPods-EZRatingViewDemo.a */, 155 | ); 156 | name = Frameworks; 157 | sourceTree = ""; 158 | }; 159 | 75BB2059180636FA00BE8680 /* EZRatingViewDemo */ = { 160 | isa = PBXGroup; 161 | children = ( 162 | 7593196619EFC2B900506F80 /* MenuViewController */, 163 | 7593196B19EFC42100506F80 /* PropertiesViewController */, 164 | 7593196719EFC3C100506F80 /* OnTheCellViewController */, 165 | 75BB2062180636FA00BE8680 /* EZAppDelegate.h */, 166 | 75BB2063180636FA00BE8680 /* EZAppDelegate.m */, 167 | 8F0B89DA1C1A9C010048660D /* UIImage+EZAdditions.h */, 168 | 8F0B89DB1C1A9C010048660D /* UIImage+EZAdditions.m */, 169 | 75BB206B180636FA00BE8680 /* Images.xcassets */, 170 | 75BB205A180636FA00BE8680 /* Supporting Files */, 171 | ); 172 | path = EZRatingViewDemo; 173 | sourceTree = ""; 174 | }; 175 | 75BB205A180636FA00BE8680 /* Supporting Files */ = { 176 | isa = PBXGroup; 177 | children = ( 178 | 8F0B89D71C1A96E80048660D /* Launch Screen.storyboard */, 179 | 75BB205B180636FA00BE8680 /* EZRatingViewDemo-Info.plist */, 180 | 75BB205C180636FA00BE8680 /* InfoPlist.strings */, 181 | 75BB205F180636FA00BE8680 /* main.m */, 182 | 75BB2061180636FA00BE8680 /* EZRatingViewDemo-Prefix.pch */, 183 | ); 184 | name = "Supporting Files"; 185 | sourceTree = ""; 186 | }; 187 | 75BB2078180636FA00BE8680 /* EZRatingViewDemoTests */ = { 188 | isa = PBXGroup; 189 | children = ( 190 | 75BB207E180636FA00BE8680 /* EZRatingViewDemoTests.m */, 191 | 75BB2079180636FA00BE8680 /* Supporting Files */, 192 | ); 193 | path = EZRatingViewDemoTests; 194 | sourceTree = ""; 195 | }; 196 | 75BB2079180636FA00BE8680 /* Supporting Files */ = { 197 | isa = PBXGroup; 198 | children = ( 199 | 75BB207A180636FA00BE8680 /* EZRatingViewDemoTests-Info.plist */, 200 | 75BB207B180636FA00BE8680 /* InfoPlist.strings */, 201 | ); 202 | name = "Supporting Files"; 203 | sourceTree = ""; 204 | }; 205 | DD7D1496EFBEBDC955A762E6 /* Pods */ = { 206 | isa = PBXGroup; 207 | children = ( 208 | 00EE30CED36C17F15B5CAB6C /* Pods-EZRatingViewDemo.debug.xcconfig */, 209 | 9CE19BE6C35902CCB4A00A38 /* Pods-EZRatingViewDemo.release.xcconfig */, 210 | ); 211 | name = Pods; 212 | sourceTree = ""; 213 | }; 214 | /* End PBXGroup section */ 215 | 216 | /* Begin PBXNativeTarget section */ 217 | 75BB204F180636FA00BE8680 /* EZRatingViewDemo */ = { 218 | isa = PBXNativeTarget; 219 | buildConfigurationList = 75BB2082180636FA00BE8680 /* Build configuration list for PBXNativeTarget "EZRatingViewDemo" */; 220 | buildPhases = ( 221 | DFC5F8C9EF60F1E8D74D5ED6 /* [CP] Check Pods Manifest.lock */, 222 | 75BB204C180636FA00BE8680 /* Sources */, 223 | 75BB204D180636FA00BE8680 /* Frameworks */, 224 | 75BB204E180636FA00BE8680 /* Resources */, 225 | 0D9E062843706448B7E015E4 /* [CP] Embed Pods Frameworks */, 226 | 87776658EC247C3977B6527A /* [CP] Copy Pods Resources */, 227 | ); 228 | buildRules = ( 229 | ); 230 | dependencies = ( 231 | ); 232 | name = EZRatingViewDemo; 233 | productName = EZRatingViewDemo; 234 | productReference = 75BB2050180636FA00BE8680 /* EZRatingViewDemo.app */; 235 | productType = "com.apple.product-type.application"; 236 | }; 237 | 75BB2070180636FA00BE8680 /* EZRatingViewDemoTests */ = { 238 | isa = PBXNativeTarget; 239 | buildConfigurationList = 75BB2085180636FA00BE8680 /* Build configuration list for PBXNativeTarget "EZRatingViewDemoTests" */; 240 | buildPhases = ( 241 | 75BB206D180636FA00BE8680 /* Sources */, 242 | 75BB206E180636FA00BE8680 /* Frameworks */, 243 | 75BB206F180636FA00BE8680 /* Resources */, 244 | ); 245 | buildRules = ( 246 | ); 247 | dependencies = ( 248 | 75BB2077180636FA00BE8680 /* PBXTargetDependency */, 249 | ); 250 | name = EZRatingViewDemoTests; 251 | productName = EZRatingViewDemoTests; 252 | productReference = 75BB2071180636FA00BE8680 /* EZRatingViewDemoTests.xctest */; 253 | productType = "com.apple.product-type.bundle.unit-test"; 254 | }; 255 | /* End PBXNativeTarget section */ 256 | 257 | /* Begin PBXProject section */ 258 | 75BB2048180636FA00BE8680 /* Project object */ = { 259 | isa = PBXProject; 260 | attributes = { 261 | CLASSPREFIX = EZ; 262 | LastUpgradeCheck = 0800; 263 | ORGANIZATIONNAME = evianzhow; 264 | TargetAttributes = { 265 | 75BB2070180636FA00BE8680 = { 266 | TestTargetID = 75BB204F180636FA00BE8680; 267 | }; 268 | }; 269 | }; 270 | buildConfigurationList = 75BB204B180636FA00BE8680 /* Build configuration list for PBXProject "EZRatingViewDemo" */; 271 | compatibilityVersion = "Xcode 3.2"; 272 | developmentRegion = English; 273 | hasScannedForEncodings = 0; 274 | knownRegions = ( 275 | en, 276 | Base, 277 | ); 278 | mainGroup = 75BB2047180636FA00BE8680; 279 | productRefGroup = 75BB2051180636FA00BE8680 /* Products */; 280 | projectDirPath = ""; 281 | projectRoot = ""; 282 | targets = ( 283 | 75BB204F180636FA00BE8680 /* EZRatingViewDemo */, 284 | 75BB2070180636FA00BE8680 /* EZRatingViewDemoTests */, 285 | ); 286 | }; 287 | /* End PBXProject section */ 288 | 289 | /* Begin PBXResourcesBuildPhase section */ 290 | 75BB204E180636FA00BE8680 /* Resources */ = { 291 | isa = PBXResourcesBuildPhase; 292 | buildActionMask = 2147483647; 293 | files = ( 294 | 8F0B89D81C1A96E80048660D /* Launch Screen.storyboard in Resources */, 295 | 75BB206C180636FA00BE8680 /* Images.xcassets in Resources */, 296 | 75BB205E180636FA00BE8680 /* InfoPlist.strings in Resources */, 297 | ); 298 | runOnlyForDeploymentPostprocessing = 0; 299 | }; 300 | 75BB206F180636FA00BE8680 /* Resources */ = { 301 | isa = PBXResourcesBuildPhase; 302 | buildActionMask = 2147483647; 303 | files = ( 304 | 75BB207D180636FA00BE8680 /* InfoPlist.strings in Resources */, 305 | ); 306 | runOnlyForDeploymentPostprocessing = 0; 307 | }; 308 | /* End PBXResourcesBuildPhase section */ 309 | 310 | /* Begin PBXShellScriptBuildPhase section */ 311 | 0D9E062843706448B7E015E4 /* [CP] Embed Pods Frameworks */ = { 312 | isa = PBXShellScriptBuildPhase; 313 | buildActionMask = 2147483647; 314 | files = ( 315 | ); 316 | inputPaths = ( 317 | ); 318 | name = "[CP] Embed Pods Frameworks"; 319 | outputPaths = ( 320 | ); 321 | runOnlyForDeploymentPostprocessing = 0; 322 | shellPath = /bin/sh; 323 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-frameworks.sh\"\n"; 324 | showEnvVarsInLog = 0; 325 | }; 326 | 87776658EC247C3977B6527A /* [CP] Copy Pods Resources */ = { 327 | isa = PBXShellScriptBuildPhase; 328 | buildActionMask = 2147483647; 329 | files = ( 330 | ); 331 | inputPaths = ( 332 | ); 333 | name = "[CP] Copy Pods Resources"; 334 | outputPaths = ( 335 | ); 336 | runOnlyForDeploymentPostprocessing = 0; 337 | shellPath = /bin/sh; 338 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-resources.sh\"\n"; 339 | showEnvVarsInLog = 0; 340 | }; 341 | DFC5F8C9EF60F1E8D74D5ED6 /* [CP] Check Pods Manifest.lock */ = { 342 | isa = PBXShellScriptBuildPhase; 343 | buildActionMask = 2147483647; 344 | files = ( 345 | ); 346 | inputPaths = ( 347 | ); 348 | name = "[CP] Check Pods Manifest.lock"; 349 | outputPaths = ( 350 | ); 351 | runOnlyForDeploymentPostprocessing = 0; 352 | shellPath = /bin/sh; 353 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 354 | showEnvVarsInLog = 0; 355 | }; 356 | /* End PBXShellScriptBuildPhase section */ 357 | 358 | /* Begin PBXSourcesBuildPhase section */ 359 | 75BB204C180636FA00BE8680 /* Sources */ = { 360 | isa = PBXSourcesBuildPhase; 361 | buildActionMask = 2147483647; 362 | files = ( 363 | 8F0B89DC1C1A9C010048660D /* UIImage+EZAdditions.m in Sources */, 364 | 75BB2060180636FA00BE8680 /* main.m in Sources */, 365 | 7593196A19EFC3E000506F80 /* EZOnTheCellViewController.m in Sources */, 366 | 75BB206A180636FA00BE8680 /* EZPropertiesViewController.m in Sources */, 367 | 7593196519EFC2B600506F80 /* EZMenuViewController.m in Sources */, 368 | 75BB2064180636FA00BE8680 /* EZAppDelegate.m in Sources */, 369 | ); 370 | runOnlyForDeploymentPostprocessing = 0; 371 | }; 372 | 75BB206D180636FA00BE8680 /* Sources */ = { 373 | isa = PBXSourcesBuildPhase; 374 | buildActionMask = 2147483647; 375 | files = ( 376 | 75BB207F180636FA00BE8680 /* EZRatingViewDemoTests.m in Sources */, 377 | ); 378 | runOnlyForDeploymentPostprocessing = 0; 379 | }; 380 | /* End PBXSourcesBuildPhase section */ 381 | 382 | /* Begin PBXTargetDependency section */ 383 | 75BB2077180636FA00BE8680 /* PBXTargetDependency */ = { 384 | isa = PBXTargetDependency; 385 | target = 75BB204F180636FA00BE8680 /* EZRatingViewDemo */; 386 | targetProxy = 75BB2076180636FA00BE8680 /* PBXContainerItemProxy */; 387 | }; 388 | /* End PBXTargetDependency section */ 389 | 390 | /* Begin PBXVariantGroup section */ 391 | 75BB205C180636FA00BE8680 /* InfoPlist.strings */ = { 392 | isa = PBXVariantGroup; 393 | children = ( 394 | 75BB205D180636FA00BE8680 /* en */, 395 | ); 396 | name = InfoPlist.strings; 397 | sourceTree = ""; 398 | }; 399 | 75BB207B180636FA00BE8680 /* InfoPlist.strings */ = { 400 | isa = PBXVariantGroup; 401 | children = ( 402 | 75BB207C180636FA00BE8680 /* en */, 403 | ); 404 | name = InfoPlist.strings; 405 | sourceTree = ""; 406 | }; 407 | /* End PBXVariantGroup section */ 408 | 409 | /* Begin XCBuildConfiguration section */ 410 | 75BB2080180636FA00BE8680 /* Debug */ = { 411 | isa = XCBuildConfiguration; 412 | buildSettings = { 413 | ALWAYS_SEARCH_USER_PATHS = NO; 414 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 415 | CLANG_CXX_LIBRARY = "libc++"; 416 | CLANG_ENABLE_MODULES = YES; 417 | CLANG_ENABLE_OBJC_ARC = YES; 418 | CLANG_WARN_BOOL_CONVERSION = YES; 419 | CLANG_WARN_CONSTANT_CONVERSION = YES; 420 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 421 | CLANG_WARN_EMPTY_BODY = YES; 422 | CLANG_WARN_ENUM_CONVERSION = YES; 423 | CLANG_WARN_INFINITE_RECURSION = YES; 424 | CLANG_WARN_INT_CONVERSION = YES; 425 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 426 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 427 | CLANG_WARN_UNREACHABLE_CODE = YES; 428 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 429 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 430 | COPY_PHASE_STRIP = NO; 431 | ENABLE_STRICT_OBJC_MSGSEND = YES; 432 | ENABLE_TESTABILITY = YES; 433 | GCC_C_LANGUAGE_STANDARD = gnu99; 434 | GCC_DYNAMIC_NO_PIC = NO; 435 | GCC_NO_COMMON_BLOCKS = YES; 436 | GCC_OPTIMIZATION_LEVEL = 0; 437 | GCC_PREPROCESSOR_DEFINITIONS = ( 438 | "DEBUG=1", 439 | "$(inherited)", 440 | ); 441 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 442 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 443 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 444 | GCC_WARN_UNDECLARED_SELECTOR = YES; 445 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 446 | GCC_WARN_UNUSED_FUNCTION = YES; 447 | GCC_WARN_UNUSED_VARIABLE = YES; 448 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 449 | ONLY_ACTIVE_ARCH = YES; 450 | SDKROOT = iphoneos; 451 | }; 452 | name = Debug; 453 | }; 454 | 75BB2081180636FA00BE8680 /* Release */ = { 455 | isa = XCBuildConfiguration; 456 | buildSettings = { 457 | ALWAYS_SEARCH_USER_PATHS = NO; 458 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 459 | CLANG_CXX_LIBRARY = "libc++"; 460 | CLANG_ENABLE_MODULES = YES; 461 | CLANG_ENABLE_OBJC_ARC = YES; 462 | CLANG_WARN_BOOL_CONVERSION = YES; 463 | CLANG_WARN_CONSTANT_CONVERSION = YES; 464 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 465 | CLANG_WARN_EMPTY_BODY = YES; 466 | CLANG_WARN_ENUM_CONVERSION = YES; 467 | CLANG_WARN_INFINITE_RECURSION = YES; 468 | CLANG_WARN_INT_CONVERSION = YES; 469 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 470 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 471 | CLANG_WARN_UNREACHABLE_CODE = YES; 472 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 473 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 474 | COPY_PHASE_STRIP = YES; 475 | ENABLE_NS_ASSERTIONS = NO; 476 | ENABLE_STRICT_OBJC_MSGSEND = YES; 477 | GCC_C_LANGUAGE_STANDARD = gnu99; 478 | GCC_NO_COMMON_BLOCKS = YES; 479 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 480 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 481 | GCC_WARN_UNDECLARED_SELECTOR = YES; 482 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 483 | GCC_WARN_UNUSED_FUNCTION = YES; 484 | GCC_WARN_UNUSED_VARIABLE = YES; 485 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 486 | SDKROOT = iphoneos; 487 | VALIDATE_PRODUCT = YES; 488 | }; 489 | name = Release; 490 | }; 491 | 75BB2083180636FA00BE8680 /* Debug */ = { 492 | isa = XCBuildConfiguration; 493 | baseConfigurationReference = 00EE30CED36C17F15B5CAB6C /* Pods-EZRatingViewDemo.debug.xcconfig */; 494 | buildSettings = { 495 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 496 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 497 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 498 | GCC_PREFIX_HEADER = "EZRatingViewDemo/EZRatingViewDemo-Prefix.pch"; 499 | INFOPLIST_FILE = "$(SRCROOT)/EZRatingViewDemo/EZRatingViewDemo-Info.plist"; 500 | PRODUCT_BUNDLE_IDENTIFIER = com.aladdincloud.EZRatingViewDemo; 501 | PRODUCT_NAME = "$(TARGET_NAME)"; 502 | WRAPPER_EXTENSION = app; 503 | }; 504 | name = Debug; 505 | }; 506 | 75BB2084180636FA00BE8680 /* Release */ = { 507 | isa = XCBuildConfiguration; 508 | baseConfigurationReference = 9CE19BE6C35902CCB4A00A38 /* Pods-EZRatingViewDemo.release.xcconfig */; 509 | buildSettings = { 510 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 511 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 512 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 513 | GCC_PREFIX_HEADER = "EZRatingViewDemo/EZRatingViewDemo-Prefix.pch"; 514 | INFOPLIST_FILE = "$(SRCROOT)/EZRatingViewDemo/EZRatingViewDemo-Info.plist"; 515 | PRODUCT_BUNDLE_IDENTIFIER = com.aladdincloud.EZRatingViewDemo; 516 | PRODUCT_NAME = "$(TARGET_NAME)"; 517 | WRAPPER_EXTENSION = app; 518 | }; 519 | name = Release; 520 | }; 521 | 75BB2086180636FA00BE8680 /* Debug */ = { 522 | isa = XCBuildConfiguration; 523 | buildSettings = { 524 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/EZRatingViewDemo.app/EZRatingViewDemo"; 525 | FRAMEWORK_SEARCH_PATHS = ( 526 | "$(SDKROOT)/Developer/Library/Frameworks", 527 | "$(inherited)", 528 | "$(DEVELOPER_FRAMEWORKS_DIR)", 529 | ); 530 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 531 | GCC_PREFIX_HEADER = "EZRatingViewDemo/EZRatingViewDemo-Prefix.pch"; 532 | GCC_PREPROCESSOR_DEFINITIONS = ( 533 | "DEBUG=1", 534 | "$(inherited)", 535 | ); 536 | INFOPLIST_FILE = "EZRatingViewDemoTests/EZRatingViewDemoTests-Info.plist"; 537 | PRODUCT_BUNDLE_IDENTIFIER = "com.akiroom.${PRODUCT_NAME:rfc1034identifier}"; 538 | PRODUCT_NAME = "$(TARGET_NAME)"; 539 | TEST_HOST = "$(BUNDLE_LOADER)"; 540 | WRAPPER_EXTENSION = xctest; 541 | }; 542 | name = Debug; 543 | }; 544 | 75BB2087180636FA00BE8680 /* Release */ = { 545 | isa = XCBuildConfiguration; 546 | buildSettings = { 547 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/EZRatingViewDemo.app/EZRatingViewDemo"; 548 | FRAMEWORK_SEARCH_PATHS = ( 549 | "$(SDKROOT)/Developer/Library/Frameworks", 550 | "$(inherited)", 551 | "$(DEVELOPER_FRAMEWORKS_DIR)", 552 | ); 553 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 554 | GCC_PREFIX_HEADER = "EZRatingViewDemo/EZRatingViewDemo-Prefix.pch"; 555 | INFOPLIST_FILE = "EZRatingViewDemoTests/EZRatingViewDemoTests-Info.plist"; 556 | PRODUCT_BUNDLE_IDENTIFIER = "com.akiroom.${PRODUCT_NAME:rfc1034identifier}"; 557 | PRODUCT_NAME = "$(TARGET_NAME)"; 558 | TEST_HOST = "$(BUNDLE_LOADER)"; 559 | WRAPPER_EXTENSION = xctest; 560 | }; 561 | name = Release; 562 | }; 563 | /* End XCBuildConfiguration section */ 564 | 565 | /* Begin XCConfigurationList section */ 566 | 75BB204B180636FA00BE8680 /* Build configuration list for PBXProject "EZRatingViewDemo" */ = { 567 | isa = XCConfigurationList; 568 | buildConfigurations = ( 569 | 75BB2080180636FA00BE8680 /* Debug */, 570 | 75BB2081180636FA00BE8680 /* Release */, 571 | ); 572 | defaultConfigurationIsVisible = 0; 573 | defaultConfigurationName = Release; 574 | }; 575 | 75BB2082180636FA00BE8680 /* Build configuration list for PBXNativeTarget "EZRatingViewDemo" */ = { 576 | isa = XCConfigurationList; 577 | buildConfigurations = ( 578 | 75BB2083180636FA00BE8680 /* Debug */, 579 | 75BB2084180636FA00BE8680 /* Release */, 580 | ); 581 | defaultConfigurationIsVisible = 0; 582 | defaultConfigurationName = Release; 583 | }; 584 | 75BB2085180636FA00BE8680 /* Build configuration list for PBXNativeTarget "EZRatingViewDemoTests" */ = { 585 | isa = XCConfigurationList; 586 | buildConfigurations = ( 587 | 75BB2086180636FA00BE8680 /* Debug */, 588 | 75BB2087180636FA00BE8680 /* Release */, 589 | ); 590 | defaultConfigurationIsVisible = 0; 591 | defaultConfigurationName = Release; 592 | }; 593 | /* End XCConfigurationList section */ 594 | }; 595 | rootObject = 75BB2048180636FA00BE8680 /* Project object */; 596 | } 597 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo.xcodeproj/xcshareddata/xcschemes/EZRatingViewDemo.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 53 | 54 | 64 | 66 | 72 | 73 | 74 | 75 | 76 | 77 | 83 | 85 | 91 | 92 | 93 | 94 | 96 | 97 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // EZAppDelegate.h 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import 7 | 8 | @interface EZAppDelegate : UIResponder 9 | 10 | @property (strong, nonatomic) UIWindow *window; 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // EZAppDelegate.m 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import "EZAppDelegate.h" 7 | #import "EZMenuViewController.h" 8 | 9 | @implementation EZAppDelegate 10 | 11 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 12 | { 13 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 14 | 15 | EZMenuViewController *menuViewCon = [[EZMenuViewController alloc] init]; 16 | UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:menuViewCon]; 17 | self.window.rootViewController = navCon; 18 | [self.window makeKeyAndVisible]; 19 | return YES; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZMenuViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // EZMenuViewController.h 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import 7 | 8 | @interface EZMenuViewController : UITableViewController 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZMenuViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // EZMenuViewController.m 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import "EZMenuViewController.h" 7 | #import "EZPropertiesViewController.h" 8 | #import "EZOnTheCellViewController.h" 9 | 10 | @interface EZMenuViewController () 11 | 12 | @end 13 | 14 | @implementation EZMenuViewController { 15 | NSArray *_menuTitles; 16 | } 17 | 18 | - (void)viewDidLoad 19 | { 20 | [super viewDidLoad]; 21 | 22 | self.title = @"EZRatingView Demo"; 23 | 24 | _menuTitles = @[ 25 | @"Properties", 26 | @"on the UITableViewCell", 27 | ]; 28 | } 29 | 30 | - (void)didReceiveMemoryWarning 31 | { 32 | [super didReceiveMemoryWarning]; 33 | // Dispose of any resources that can be recreated. 34 | } 35 | 36 | #pragma mark - Table view data source 37 | 38 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 39 | { 40 | // Return the number of sections. 41 | return 1; 42 | } 43 | 44 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 45 | { 46 | // Return the number of rows in the section. 47 | return _menuTitles.count; 48 | } 49 | 50 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 51 | { 52 | static NSString *CellIdentifier = @"Cell"; 53 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 54 | if (!cell) { 55 | cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 56 | [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; 57 | } 58 | [cell.textLabel setText:_menuTitles[indexPath.row]]; 59 | return cell; 60 | } 61 | 62 | #pragma mark - Table view delegate 63 | 64 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 65 | { 66 | switch (indexPath.row) { 67 | case 0: { 68 | // Properties 69 | EZPropertiesViewController *propertiesViewCon = [[EZPropertiesViewController alloc] init]; 70 | [self.navigationController pushViewController:propertiesViewCon animated:YES]; 71 | break; 72 | } 73 | case 1: { 74 | // on the UITableViewCell 75 | EZOnTheCellViewController *onTheCellViewCon = [[EZOnTheCellViewController alloc] init]; 76 | [self.navigationController pushViewController:onTheCellViewCon animated:YES]; 77 | break; 78 | } 79 | default: 80 | // nothing 81 | [tableView deselectRowAtIndexPath:indexPath animated:YES]; 82 | break; 83 | } 84 | } 85 | 86 | @end 87 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZOnTheCellViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // EZOnTheCellViewController.h 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import 7 | 8 | @interface EZOnTheCellViewController : UITableViewController 9 | 10 | @end 11 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZOnTheCellViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // EZOnTheCellViewController.m 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import "EZOnTheCellViewController.h" 7 | #import 8 | 9 | @interface EZOnTheCellViewController () 10 | 11 | @end 12 | 13 | @implementation EZOnTheCellViewController { 14 | NSMutableArray *_ratingNumbers; 15 | } 16 | 17 | - (void)viewDidLoad 18 | { 19 | [super viewDidLoad]; 20 | 21 | self.title = @"on the UITableViewCell"; 22 | 23 | _ratingNumbers = [NSMutableArray array]; 24 | for (NSUInteger index = 0; index < 10000; index++) { 25 | [_ratingNumbers addObject:@(rand() % 6)]; 26 | } 27 | } 28 | 29 | - (void)didReceiveMemoryWarning 30 | { 31 | [super didReceiveMemoryWarning]; 32 | // Dispose of any resources that can be recreated. 33 | } 34 | 35 | #pragma mark - Table view data source 36 | 37 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 38 | { 39 | // Return the number of sections. 40 | return 1; 41 | } 42 | 43 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 44 | { 45 | // Return the number of rows in the section. 46 | return _ratingNumbers.count; 47 | } 48 | 49 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 50 | { 51 | static NSString *CellIdentifier = @"StarCell"; 52 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 53 | if (!cell) { 54 | cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 55 | 56 | // Set rating view to accessory view. 57 | EZRatingView *ratingView = [[EZRatingView alloc] init]; 58 | [ratingView setStepInterval:1.0]; 59 | [ratingView addTarget:self action:@selector(changeRate:) forControlEvents:UIControlEventValueChanged]; 60 | cell.accessoryView = ratingView; 61 | [cell.accessoryView sizeToFit]; 62 | } 63 | [cell.textLabel setText:[NSString stringWithFormat:@"No.%d", (int)(indexPath.row + 1)]]; 64 | 65 | // Setup rating view for each cell. 66 | EZRatingView *ratingView = (EZRatingView *)cell.accessoryView; 67 | ratingView.value = [_ratingNumbers[indexPath.row] floatValue]; 68 | ratingView.tag = indexPath.row; 69 | 70 | return cell; 71 | } 72 | 73 | #pragma mark - Table view delegate 74 | 75 | - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 76 | { 77 | [tableView deselectRowAtIndexPath:indexPath animated:YES]; 78 | } 79 | 80 | #pragma mark - Action 81 | 82 | - (void)changeRate:(EZRatingView *)sender 83 | { 84 | // Save rating, because the cell will be reused. 85 | _ratingNumbers[sender.tag] = @(sender.value); 86 | } 87 | 88 | @end 89 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZPropertiesViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // EZPropertiesViewController.h 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import 7 | #import "EZRatingView/EZRatingView.h" 8 | 9 | @interface EZPropertiesViewController : UIViewController 10 | 11 | @property (strong, nonatomic) UILabel *label; 12 | @property (strong, nonatomic) EZRatingView *ratingView; 13 | @property (strong, nonatomic) UISlider *slider; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZPropertiesViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // EZPropertiesViewController.m 3 | // EZRatingViewDemo 4 | // 5 | 6 | #import "EZPropertiesViewController.h" 7 | #import "UIImage+EZAdditions.h" 8 | 9 | @implementation EZPropertiesViewController { 10 | EZRatingView *_setColorRatingView; 11 | } 12 | 13 | - (void)viewDidLoad 14 | { 15 | [super viewDidLoad]; 16 | self.title = @"Properties"; 17 | self.view.backgroundColor = [UIColor whiteColor]; 18 | 19 | if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) { 20 | self.edgesForExtendedLayout = UIRectEdgeNone; 21 | } 22 | 23 | CGFloat padding = 24.0; 24 | CGRect componentBounds = (CGRect){padding, 0.0, CGRectGetWidth(self.view.bounds) - padding * 2, 32.0}; 25 | __block NSUInteger positionCounter = 0; 26 | 27 | CGRect (^nextFrame)() = ^CGRect() { 28 | return CGRectOffset(componentBounds, 0.0, padding * positionCounter++); 29 | }; 30 | 31 | // smooth 32 | 33 | UILabel *basicLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 34 | basicLabel.text = @"smooth"; 35 | [self.view addSubview:basicLabel]; 36 | 37 | EZRatingView *basicRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 38 | basicRatingView.userInteractionEnabled = YES; 39 | [basicRatingView sizeToFit]; 40 | [self.view addSubview:basicRatingView]; 41 | 42 | // step 43 | 44 | UILabel *stepLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 45 | stepLabel.text = @"step"; 46 | [self.view addSubview:stepLabel]; 47 | 48 | EZRatingView *stepRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 49 | stepRatingView.userInteractionEnabled = YES; 50 | [stepRatingView sizeToFit]; 51 | [stepRatingView setStepInterval:1.0]; 52 | [self.view addSubview:stepRatingView]; 53 | 54 | // half step 55 | 56 | UILabel *halfStepLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 57 | halfStepLabel.text = @"half step"; 58 | [self.view addSubview:halfStepLabel]; 59 | 60 | EZRatingView *halfStepRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 61 | halfStepRatingView.userInteractionEnabled = YES; 62 | [halfStepRatingView sizeToFit]; 63 | [halfStepRatingView setStepInterval:0.5]; 64 | [self.view addSubview:halfStepRatingView]; 65 | 66 | // unicode character 67 | 68 | UILabel *freeCharacterLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 69 | freeCharacterLabel.text = @"unicode character"; 70 | [self.view addSubview:freeCharacterLabel]; 71 | 72 | EZRatingView *freeCharacterRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 73 | freeCharacterRatingView.userInteractionEnabled = YES; 74 | freeCharacterRatingView.markerDict = 75 | @{ EZMarkerCharacterFontKey : [UIFont systemFontOfSize:18.0], 76 | EZMarkerMaskCharacterKey : @"\u263B", 77 | EZMarkerHighlightCharacterKey : @"\u263B" }; 78 | freeCharacterRatingView.userInteractionEnabled = YES; 79 | [freeCharacterRatingView sizeToFit]; 80 | [self.view addSubview:freeCharacterRatingView]; 81 | 82 | // image 83 | 84 | UILabel *freeImageLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 85 | freeImageLabel.text = @"image"; 86 | [self.view addSubview:freeImageLabel]; 87 | 88 | EZRatingView *freeImageRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 89 | freeImageRatingView.markerDict = @{ 90 | EZMarkerMaskImageKey : [UIImage imageNamed:@"face"], 91 | EZMarkerHighlightImageKey : [[UIImage imageNamed:@"face"] ez_tintedImageWithColor:[UIColor colorWithRed:1.0 green:0.8 blue:0.0 alpha:1.0]] 92 | }; 93 | freeImageRatingView.userInteractionEnabled = YES; 94 | [freeImageRatingView sizeToFit]; 95 | [self.view addSubview:freeImageRatingView]; 96 | 97 | // color 98 | 99 | UILabel *setColorLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 100 | setColorLabel.text = @"color"; 101 | [self.view addSubview:setColorLabel]; 102 | 103 | EZRatingView *setColorRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 104 | [setColorRatingView sizeToFit]; 105 | setColorRatingView.markerDict = @{EZMarkerHighlightColorKey : [UIColor greenColor], EZMarkerBaseColorKey : [UIColor orangeColor]}; 106 | setColorRatingView.userInteractionEnabled = YES; 107 | [self.view addSubview:setColorRatingView]; 108 | _setColorRatingView = setColorRatingView; 109 | 110 | UIButton *changeColorButton = [UIButton buttonWithType:UIButtonTypeSystem]; 111 | [changeColorButton setTitle:@"change" forState:UIControlStateNormal]; 112 | [changeColorButton addTarget:self action:@selector(changeColor:) forControlEvents:UIControlEventTouchUpInside]; 113 | [changeColorButton 114 | setFrame:(CGRect){CGRectGetMaxX(setColorRatingView.frame), CGRectGetMinY(setColorRatingView.frame), 160.0, CGRectGetHeight(setColorRatingView.frame)}]; 115 | [self.view addSubview:changeColorButton]; 116 | 117 | // not editable 118 | 119 | UILabel *notEditableLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 120 | notEditableLabel.text = @"not editable (default behavior)"; 121 | [self.view addSubview:notEditableLabel]; 122 | 123 | EZRatingView *notEditableRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 124 | [notEditableRatingView sizeToFit]; 125 | [notEditableRatingView setUserInteractionEnabled:NO]; 126 | [notEditableRatingView setValue:4.0]; 127 | [self.view addSubview:notEditableRatingView]; 128 | 129 | // minimum value 130 | 131 | UILabel *minValueLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 132 | minValueLabel.text = @"minimum value (no less than 2.0)"; 133 | [self.view addSubview:minValueLabel]; 134 | 135 | EZRatingView *minValueRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 136 | minValueRatingView.userInteractionEnabled = YES; 137 | [minValueRatingView sizeToFit]; 138 | [minValueRatingView setValue:4.0f]; 139 | [minValueRatingView setMinimumValue:2.0f]; 140 | [self.view addSubview:minValueRatingView]; 141 | 142 | // more stars 143 | 144 | UILabel *moreStarsLabel = [[UILabel alloc] initWithFrame:nextFrame()]; 145 | moreStarsLabel.text = @"more stars"; 146 | [self.view addSubview:moreStarsLabel]; 147 | 148 | EZRatingView *moreStarsRatingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 149 | moreStarsRatingView.userInteractionEnabled = YES; 150 | [moreStarsRatingView setNumberOfStar:12]; 151 | [moreStarsRatingView sizeToFit]; 152 | [self.view addSubview:moreStarsRatingView]; 153 | 154 | // set and get 155 | 156 | self.label = [[UILabel alloc] initWithFrame:nextFrame()]; 157 | [self.view addSubview:_label]; 158 | 159 | self.ratingView = [[EZRatingView alloc] initWithFrame:nextFrame()]; 160 | _ratingView.stepInterval = 0.0; 161 | _ratingView.value = 2.5; 162 | // _ratingView.continuous = NO; 163 | _ratingView.userInteractionEnabled = YES; 164 | [_ratingView addTarget:self action:@selector(ratingChanged:) forControlEvents:UIControlEventValueChanged]; 165 | [_ratingView sizeToFit]; 166 | [self.view addSubview:_ratingView]; 167 | 168 | self.slider = [[UISlider alloc] initWithFrame:nextFrame()]; 169 | _slider.minimumValue = 0.0; 170 | _slider.maximumValue = 5.0; 171 | // _slider.continuous = NO; 172 | [_slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged]; 173 | [self.view addSubview:_slider]; 174 | 175 | [self ratingChanged:self.ratingView]; 176 | } 177 | 178 | #pragma mark - Action 179 | 180 | - (void)sliderChanged:(UISlider *)sender 181 | { 182 | [self.ratingView setValue:[sender value]]; 183 | [self.label setText:[NSString stringWithFormat:@"set and get: %.2f", sender.value]]; 184 | } 185 | 186 | - (void)ratingChanged:(EZRatingView *)sender 187 | { 188 | [self.slider setValue:[sender value]]; 189 | [self.label setText:[NSString stringWithFormat:@"set and get: %.2f", sender.value]]; 190 | } 191 | 192 | - (void)changeColor:(id)sender 193 | { 194 | _setColorRatingView.markerDict = @{ 195 | EZMarkerBaseColorKey : [UIColor colorWithRed:rand() % 255 / 255.0 green:rand() % 255 / 255.0 blue:rand() % 255 / 255.0 alpha:1.0], 196 | EZMarkerHighlightColorKey : [UIColor colorWithRed:rand() % 255 / 255.0 green:rand() % 255 / 255.0 blue:rand() % 255 / 255.0 alpha:1.0] 197 | }; 198 | } 199 | 200 | @end 201 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZRatingViewDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | Launch Screen 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/EZRatingViewDemo-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header 3 | // 4 | // The contents of this file are implicitly included at the beginning of every source file. 5 | // 6 | 7 | #import 8 | 9 | #ifndef __IPHONE_5_0 10 | #warning "This project uses features only available in iOS SDK 5.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | } 43 | ], 44 | "info" : { 45 | "version" : 1, 46 | "author" : "xcode" 47 | } 48 | } -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "8.0", 8 | "subtype" : "736h", 9 | "scale" : "3x" 10 | }, 11 | { 12 | "orientation" : "landscape", 13 | "idiom" : "iphone", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "8.0", 16 | "subtype" : "736h", 17 | "scale" : "3x" 18 | }, 19 | { 20 | "orientation" : "portrait", 21 | "idiom" : "iphone", 22 | "extent" : "full-screen", 23 | "minimum-system-version" : "8.0", 24 | "subtype" : "667h", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "orientation" : "portrait", 29 | "idiom" : "iphone", 30 | "extent" : "full-screen", 31 | "minimum-system-version" : "7.0", 32 | "scale" : "2x" 33 | }, 34 | { 35 | "orientation" : "portrait", 36 | "idiom" : "iphone", 37 | "extent" : "full-screen", 38 | "minimum-system-version" : "7.0", 39 | "subtype" : "retina4", 40 | "scale" : "2x" 41 | }, 42 | { 43 | "orientation" : "portrait", 44 | "idiom" : "iphone", 45 | "extent" : "full-screen", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "orientation" : "portrait", 50 | "idiom" : "iphone", 51 | "extent" : "full-screen", 52 | "scale" : "2x" 53 | }, 54 | { 55 | "orientation" : "portrait", 56 | "idiom" : "iphone", 57 | "extent" : "full-screen", 58 | "subtype" : "retina4", 59 | "scale" : "2x" 60 | } 61 | ], 62 | "info" : { 63 | "version" : 1, 64 | "author" : "xcode" 65 | } 66 | } -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/Images.xcassets/face.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "face@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/Images.xcassets/face.imageset/face@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evianzhow/EZRatingView/d063a927d0d8ee8543f049adbd117e28c5c92852/EZRatingViewDemo/EZRatingViewDemo/Images.xcassets/face.imageset/face@2x.png -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/UIImage+EZAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+EZAdditions.h 3 | // EZRatingViewDemo 4 | // 5 | // Created by Yifei Zhou on 12/11/15. 6 | // Copyright © 2015 akiroom. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIImage (EZAdditions) 12 | 13 | - (UIImage *)ez_tintedImageWithColor:(UIColor *)tintColor; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/UIImage+EZAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+EZAdditions.m 3 | // EZRatingViewDemo 4 | // 5 | // Created by Yifei Zhou on 12/11/15. 6 | // Copyright © 2015 akiroom. All rights reserved. 7 | // 8 | 9 | #import "UIImage+EZAdditions.h" 10 | 11 | @implementation UIImage (EZAdditions) 12 | 13 | - (UIImage *)ez_tintedImageWithColor:(UIColor *)tintColor 14 | { 15 | UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); 16 | CGContextRef context = UIGraphicsGetCurrentContext(); 17 | 18 | CGContextTranslateCTM(context, 0, self.size.height); 19 | CGContextScaleCTM(context, 1.0, -1.0); 20 | 21 | CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height); 22 | 23 | // draw alpha-mask 24 | CGContextSetBlendMode(context, kCGBlendModeNormal); 25 | CGContextDrawImage(context, rect, self.CGImage); 26 | 27 | // draw tint color, preserving alpha values of original image 28 | CGContextSetBlendMode(context, kCGBlendModeSourceIn); 29 | [tintColor setFill]; 30 | CGContextFillRect(context, rect); 31 | 32 | UIImage *coloredImage = UIGraphicsGetImageFromCurrentImageContext(); 33 | UIGraphicsEndImageContext(); 34 | return coloredImage; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemo/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // EZRatingViewDemo 4 | // 5 | // Created by Hiroki Akiyama (office) on 2013/10/10. 6 | // Copyright (c) 2013年 akiroom. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "EZAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([EZAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemoTests/EZRatingViewDemoTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemoTests/EZRatingViewDemoTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // EZRatingViewDemoTests.m 3 | // EZRatingViewDemoTests 4 | // 5 | // Created by Hiroki Akiyama (office) on 2013/10/10. 6 | // Copyright (c) 2013年 akiroom. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface EZRatingViewDemoTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation EZRatingViewDemoTests 16 | 17 | - (void)setUp 18 | { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown 24 | { 25 | // Put teardown code here. This method is called after the invocation of each test method in the class. 26 | [super tearDown]; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /EZRatingViewDemo/EZRatingViewDemoTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Launch Screen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 27 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios 2 | 3 | target 'EZRatingViewDemo' do 4 | pod 'EZRatingView', :path => '..' 5 | end 6 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - EZRatingView (2.0.0) 3 | 4 | DEPENDENCIES: 5 | - EZRatingView (from `..`) 6 | 7 | EXTERNAL SOURCES: 8 | EZRatingView: 9 | :path: ".." 10 | 11 | SPEC CHECKSUMS: 12 | EZRatingView: 196d8acc72ba137b23f6b2bffe0ab7e74557e2cf 13 | 14 | PODFILE CHECKSUM: 78404b8a37b339010da25c380ad47460258ad90f 15 | 16 | COCOAPODS: 1.0.1 17 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Headers/Private/EZRatingView/EZRatingView.h: -------------------------------------------------------------------------------- 1 | ../../../../../EZRatingView/EZRatingView.h -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Headers/Public/EZRatingView/EZRatingView.h: -------------------------------------------------------------------------------- 1 | ../../../../../EZRatingView/EZRatingView.h -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Local Podspecs/EZRatingView.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "EZRatingView", 3 | "version": "2.0.0", 4 | "summary": "Star mark rating view", 5 | "description": "Star mark rating view for a review scene.\n- Smooth rating (ex. 4.22 -> 4.23)\n- Step rating by 1.0 (ex. 3.00 -> 4.00)\n- Step rating by 0.5 (ex. 3.00 -> 3.50 -> 4.00)\n- Set other unicode character (not star character)\n- Set image\n- Set color\n- Editable & Not Editable\n- Easy to Get/Set.\n- Compatibility for iOS6, iOS7, iOS8", 6 | "homepage": "https://github.com/EvianZhow/EZRatingView", 7 | "screenshots": "https://raw.github.com/EvianZhow/EZRatingView/master/EZRatingViewDemo/Screenshot.png", 8 | "license": { 9 | "type": "MIT", 10 | "file": "LICENSE" 11 | }, 12 | "authors": { 13 | "Evian Zhow": "evianzhow@gmail.com" 14 | }, 15 | "platforms": { 16 | "ios": null 17 | }, 18 | "source": { 19 | "git": "https://github.com/EvianZhow/EZRatingView.git", 20 | "tag": "2.0.0" 21 | }, 22 | "source_files": [ 23 | "EZRatingView", 24 | "Classes/**/*.{h,m}" 25 | ], 26 | "frameworks": "QuartzCore", 27 | "requires_arc": true 28 | } 29 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - EZRatingView (2.0.0) 3 | 4 | DEPENDENCIES: 5 | - EZRatingView (from `..`) 6 | 7 | EXTERNAL SOURCES: 8 | EZRatingView: 9 | :path: ".." 10 | 11 | SPEC CHECKSUMS: 12 | EZRatingView: 196d8acc72ba137b23f6b2bffe0ab7e74557e2cf 13 | 14 | PODFILE CHECKSUM: 78404b8a37b339010da25c380ad47460258ad90f 15 | 16 | COCOAPODS: 1.0.1 17 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 055C39F8DBB214E0968FCBC20AB3B2DE /* EZRatingView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B3DDD684ACACD73C277C4BEA1C61F29 /* EZRatingView-dummy.m */; }; 11 | 24F2C15DB2BD6B16D6A84390CF80476B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90AAE8973B935FD4979EEDFB8B1E12AC /* Foundation.framework */; }; 12 | 2FB14B600F508BE52F3DB927D573F6B9 /* EZRatingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 43249F0E1DAF2453731E337C4A43BE78 /* EZRatingView.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13 | 3D63BF250F46A6625DC35C092144733B /* EZRatingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A88C2908738B307E73330C8ADEB8FF4 /* EZRatingView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; 14 | 5B856EAB6C8020F8F0649E3953956B26 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90AAE8973B935FD4979EEDFB8B1E12AC /* Foundation.framework */; }; 15 | 7287BFACF29864D3A58A740D21214187 /* Pods-EZRatingViewDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A18B79D5A9D0E1231A459498D8C3040 /* Pods-EZRatingViewDemo-dummy.m */; }; 16 | 7DA5EF7C664BDC9DDAAB430967342816 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB0B5C34B0704CE42DB8ACE437DB6B71 /* QuartzCore.framework */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXContainerItemProxy section */ 20 | 23096E64A015B75170A05DB01AD7A07A /* PBXContainerItemProxy */ = { 21 | isa = PBXContainerItemProxy; 22 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 23 | proxyType = 1; 24 | remoteGlobalIDString = 547211B8F4D04D300325999F3A003B50; 25 | remoteInfo = EZRatingView; 26 | }; 27 | /* End PBXContainerItemProxy section */ 28 | 29 | /* Begin PBXFileReference section */ 30 | 043FA838AA92B22A0C639D4F0C62117D /* Pods-EZRatingViewDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EZRatingViewDemo.debug.xcconfig"; sourceTree = ""; }; 31 | 380A3E993083866CC3C3EB6434242189 /* Pods-EZRatingViewDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-EZRatingViewDemo-acknowledgements.markdown"; sourceTree = ""; }; 32 | 3B3DDD684ACACD73C277C4BEA1C61F29 /* EZRatingView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EZRatingView-dummy.m"; sourceTree = ""; }; 33 | 419760C498D5A38ECCE62807452700C2 /* Pods-EZRatingViewDemo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-EZRatingViewDemo-resources.sh"; sourceTree = ""; }; 34 | 43249F0E1DAF2453731E337C4A43BE78 /* EZRatingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = EZRatingView.h; sourceTree = ""; }; 35 | 5A18B79D5A9D0E1231A459498D8C3040 /* Pods-EZRatingViewDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EZRatingViewDemo-dummy.m"; sourceTree = ""; }; 36 | 6F60109920FE610529AFCAE313A2BBED /* libEZRatingView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libEZRatingView.a; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 7A88C2908738B307E73330C8ADEB8FF4 /* EZRatingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = EZRatingView.m; sourceTree = ""; }; 38 | 8AD8C8469481F7E11B43165534F73683 /* Pods-EZRatingViewDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-EZRatingViewDemo-frameworks.sh"; sourceTree = ""; }; 39 | 8B23038F5BA1D1D46B97CCC2B9D70A9B /* EZRatingView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "EZRatingView-prefix.pch"; sourceTree = ""; }; 40 | 90AAE8973B935FD4979EEDFB8B1E12AC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 41 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 42 | DDD97174E40C1A693C951A5F4E03DC2C /* EZRatingView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = EZRatingView.xcconfig; sourceTree = ""; }; 43 | EAA2693847712F400F25D3A379EC8E3F /* libPods-EZRatingViewDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-EZRatingViewDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 44 | EB0B5C34B0704CE42DB8ACE437DB6B71 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; 45 | ECE4E115D29537C3DAA2EF22E710D145 /* Pods-EZRatingViewDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EZRatingViewDemo.release.xcconfig"; sourceTree = ""; }; 46 | FC7F9A649452EB31EA238F314839C9B9 /* Pods-EZRatingViewDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-EZRatingViewDemo-acknowledgements.plist"; sourceTree = ""; }; 47 | /* End PBXFileReference section */ 48 | 49 | /* Begin PBXFrameworksBuildPhase section */ 50 | 1515C209802FB44E514B2662430F3D29 /* Frameworks */ = { 51 | isa = PBXFrameworksBuildPhase; 52 | buildActionMask = 2147483647; 53 | files = ( 54 | 5B856EAB6C8020F8F0649E3953956B26 /* Foundation.framework in Frameworks */, 55 | 7DA5EF7C664BDC9DDAAB430967342816 /* QuartzCore.framework in Frameworks */, 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | AA7075018E990A8400D7AF35BB7DA453 /* Frameworks */ = { 60 | isa = PBXFrameworksBuildPhase; 61 | buildActionMask = 2147483647; 62 | files = ( 63 | 24F2C15DB2BD6B16D6A84390CF80476B /* Foundation.framework in Frameworks */, 64 | ); 65 | runOnlyForDeploymentPostprocessing = 0; 66 | }; 67 | /* End PBXFrameworksBuildPhase section */ 68 | 69 | /* Begin PBXGroup section */ 70 | 433CD3331B6C3787F473C941B61FC68F /* Frameworks */ = { 71 | isa = PBXGroup; 72 | children = ( 73 | 89F803C7E2D77E11F2120CB28FE0B795 /* iOS */, 74 | ); 75 | name = Frameworks; 76 | sourceTree = ""; 77 | }; 78 | 57A620E91743E1C1F51B2852011584B0 /* Products */ = { 79 | isa = PBXGroup; 80 | children = ( 81 | 6F60109920FE610529AFCAE313A2BBED /* libEZRatingView.a */, 82 | EAA2693847712F400F25D3A379EC8E3F /* libPods-EZRatingViewDemo.a */, 83 | ); 84 | name = Products; 85 | sourceTree = ""; 86 | }; 87 | 5BE97ADB8D039D04FA569D0792C3BFCF /* Development Pods */ = { 88 | isa = PBXGroup; 89 | children = ( 90 | DE0951B04F40D0724B79F535EDB3FDF3 /* EZRatingView */, 91 | ); 92 | name = "Development Pods"; 93 | sourceTree = ""; 94 | }; 95 | 7DB346D0F39D3F0E887471402A8071AB = { 96 | isa = PBXGroup; 97 | children = ( 98 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 99 | 5BE97ADB8D039D04FA569D0792C3BFCF /* Development Pods */, 100 | 433CD3331B6C3787F473C941B61FC68F /* Frameworks */, 101 | 57A620E91743E1C1F51B2852011584B0 /* Products */, 102 | DEAB637D1DF8BCD70891DF2579ED56D7 /* Targets Support Files */, 103 | ); 104 | sourceTree = ""; 105 | }; 106 | 89F803C7E2D77E11F2120CB28FE0B795 /* iOS */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | 90AAE8973B935FD4979EEDFB8B1E12AC /* Foundation.framework */, 110 | EB0B5C34B0704CE42DB8ACE437DB6B71 /* QuartzCore.framework */, 111 | ); 112 | name = iOS; 113 | sourceTree = ""; 114 | }; 115 | 9ACF07DE3E8F950C5347529DC458B0B1 /* Support Files */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | DDD97174E40C1A693C951A5F4E03DC2C /* EZRatingView.xcconfig */, 119 | 3B3DDD684ACACD73C277C4BEA1C61F29 /* EZRatingView-dummy.m */, 120 | 8B23038F5BA1D1D46B97CCC2B9D70A9B /* EZRatingView-prefix.pch */, 121 | ); 122 | name = "Support Files"; 123 | path = "EZRatingViewDemo/Pods/Target Support Files/EZRatingView"; 124 | sourceTree = ""; 125 | }; 126 | 9EA27C82F838B9F8AF286559ABAA9E35 /* EZRatingView */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | 43249F0E1DAF2453731E337C4A43BE78 /* EZRatingView.h */, 130 | 7A88C2908738B307E73330C8ADEB8FF4 /* EZRatingView.m */, 131 | ); 132 | path = EZRatingView; 133 | sourceTree = ""; 134 | }; 135 | B403C74A02DBE3B6250BB54C9E0DAEA0 /* Pods-EZRatingViewDemo */ = { 136 | isa = PBXGroup; 137 | children = ( 138 | 380A3E993083866CC3C3EB6434242189 /* Pods-EZRatingViewDemo-acknowledgements.markdown */, 139 | FC7F9A649452EB31EA238F314839C9B9 /* Pods-EZRatingViewDemo-acknowledgements.plist */, 140 | 5A18B79D5A9D0E1231A459498D8C3040 /* Pods-EZRatingViewDemo-dummy.m */, 141 | 8AD8C8469481F7E11B43165534F73683 /* Pods-EZRatingViewDemo-frameworks.sh */, 142 | 419760C498D5A38ECCE62807452700C2 /* Pods-EZRatingViewDemo-resources.sh */, 143 | 043FA838AA92B22A0C639D4F0C62117D /* Pods-EZRatingViewDemo.debug.xcconfig */, 144 | ECE4E115D29537C3DAA2EF22E710D145 /* Pods-EZRatingViewDemo.release.xcconfig */, 145 | ); 146 | name = "Pods-EZRatingViewDemo"; 147 | path = "Target Support Files/Pods-EZRatingViewDemo"; 148 | sourceTree = ""; 149 | }; 150 | DE0951B04F40D0724B79F535EDB3FDF3 /* EZRatingView */ = { 151 | isa = PBXGroup; 152 | children = ( 153 | 9EA27C82F838B9F8AF286559ABAA9E35 /* EZRatingView */, 154 | 9ACF07DE3E8F950C5347529DC458B0B1 /* Support Files */, 155 | ); 156 | name = EZRatingView; 157 | path = ../..; 158 | sourceTree = ""; 159 | }; 160 | DEAB637D1DF8BCD70891DF2579ED56D7 /* Targets Support Files */ = { 161 | isa = PBXGroup; 162 | children = ( 163 | B403C74A02DBE3B6250BB54C9E0DAEA0 /* Pods-EZRatingViewDemo */, 164 | ); 165 | name = "Targets Support Files"; 166 | sourceTree = ""; 167 | }; 168 | /* End PBXGroup section */ 169 | 170 | /* Begin PBXHeadersBuildPhase section */ 171 | FB29EC7BB13B1F9066C1C951D74707D1 /* Headers */ = { 172 | isa = PBXHeadersBuildPhase; 173 | buildActionMask = 2147483647; 174 | files = ( 175 | 2FB14B600F508BE52F3DB927D573F6B9 /* EZRatingView.h in Headers */, 176 | ); 177 | runOnlyForDeploymentPostprocessing = 0; 178 | }; 179 | /* End PBXHeadersBuildPhase section */ 180 | 181 | /* Begin PBXNativeTarget section */ 182 | 1F7FD4E55ADD48764D4A94E933647EA9 /* Pods-EZRatingViewDemo */ = { 183 | isa = PBXNativeTarget; 184 | buildConfigurationList = B2D821ED3B0F8EF537D17FC15C46048D /* Build configuration list for PBXNativeTarget "Pods-EZRatingViewDemo" */; 185 | buildPhases = ( 186 | D047029E5AA58ADCF6AA8D50A4F1E498 /* Sources */, 187 | AA7075018E990A8400D7AF35BB7DA453 /* Frameworks */, 188 | ); 189 | buildRules = ( 190 | ); 191 | dependencies = ( 192 | 4EC07542D860DCF661652C1B92712A02 /* PBXTargetDependency */, 193 | ); 194 | name = "Pods-EZRatingViewDemo"; 195 | productName = "Pods-EZRatingViewDemo"; 196 | productReference = EAA2693847712F400F25D3A379EC8E3F /* libPods-EZRatingViewDemo.a */; 197 | productType = "com.apple.product-type.library.static"; 198 | }; 199 | 547211B8F4D04D300325999F3A003B50 /* EZRatingView */ = { 200 | isa = PBXNativeTarget; 201 | buildConfigurationList = 0896D3EEB34E0F5CD16D17184772373A /* Build configuration list for PBXNativeTarget "EZRatingView" */; 202 | buildPhases = ( 203 | DFB6AB43F427BF1C83FDC5B5EC98E06B /* Sources */, 204 | 1515C209802FB44E514B2662430F3D29 /* Frameworks */, 205 | FB29EC7BB13B1F9066C1C951D74707D1 /* Headers */, 206 | ); 207 | buildRules = ( 208 | ); 209 | dependencies = ( 210 | ); 211 | name = EZRatingView; 212 | productName = EZRatingView; 213 | productReference = 6F60109920FE610529AFCAE313A2BBED /* libEZRatingView.a */; 214 | productType = "com.apple.product-type.library.static"; 215 | }; 216 | /* End PBXNativeTarget section */ 217 | 218 | /* Begin PBXProject section */ 219 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 220 | isa = PBXProject; 221 | attributes = { 222 | LastSwiftUpdateCheck = 0730; 223 | LastUpgradeCheck = 0700; 224 | }; 225 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 226 | compatibilityVersion = "Xcode 3.2"; 227 | developmentRegion = English; 228 | hasScannedForEncodings = 0; 229 | knownRegions = ( 230 | en, 231 | ); 232 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 233 | productRefGroup = 57A620E91743E1C1F51B2852011584B0 /* Products */; 234 | projectDirPath = ""; 235 | projectRoot = ""; 236 | targets = ( 237 | 547211B8F4D04D300325999F3A003B50 /* EZRatingView */, 238 | 1F7FD4E55ADD48764D4A94E933647EA9 /* Pods-EZRatingViewDemo */, 239 | ); 240 | }; 241 | /* End PBXProject section */ 242 | 243 | /* Begin PBXSourcesBuildPhase section */ 244 | D047029E5AA58ADCF6AA8D50A4F1E498 /* Sources */ = { 245 | isa = PBXSourcesBuildPhase; 246 | buildActionMask = 2147483647; 247 | files = ( 248 | 7287BFACF29864D3A58A740D21214187 /* Pods-EZRatingViewDemo-dummy.m in Sources */, 249 | ); 250 | runOnlyForDeploymentPostprocessing = 0; 251 | }; 252 | DFB6AB43F427BF1C83FDC5B5EC98E06B /* Sources */ = { 253 | isa = PBXSourcesBuildPhase; 254 | buildActionMask = 2147483647; 255 | files = ( 256 | 055C39F8DBB214E0968FCBC20AB3B2DE /* EZRatingView-dummy.m in Sources */, 257 | 3D63BF250F46A6625DC35C092144733B /* EZRatingView.m in Sources */, 258 | ); 259 | runOnlyForDeploymentPostprocessing = 0; 260 | }; 261 | /* End PBXSourcesBuildPhase section */ 262 | 263 | /* Begin PBXTargetDependency section */ 264 | 4EC07542D860DCF661652C1B92712A02 /* PBXTargetDependency */ = { 265 | isa = PBXTargetDependency; 266 | name = EZRatingView; 267 | target = 547211B8F4D04D300325999F3A003B50 /* EZRatingView */; 268 | targetProxy = 23096E64A015B75170A05DB01AD7A07A /* PBXContainerItemProxy */; 269 | }; 270 | /* End PBXTargetDependency section */ 271 | 272 | /* Begin XCBuildConfiguration section */ 273 | 0A1963579E5D905B8C970C033A7E647D /* Release */ = { 274 | isa = XCBuildConfiguration; 275 | baseConfigurationReference = DDD97174E40C1A693C951A5F4E03DC2C /* EZRatingView.xcconfig */; 276 | buildSettings = { 277 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 278 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 279 | ENABLE_STRICT_OBJC_MSGSEND = YES; 280 | GCC_NO_COMMON_BLOCKS = YES; 281 | GCC_PREFIX_HEADER = "Target Support Files/EZRatingView/EZRatingView-prefix.pch"; 282 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 283 | MTL_ENABLE_DEBUG_INFO = NO; 284 | OTHER_LDFLAGS = ""; 285 | OTHER_LIBTOOLFLAGS = ""; 286 | PRIVATE_HEADERS_FOLDER_PATH = ""; 287 | PRODUCT_NAME = "$(TARGET_NAME)"; 288 | PUBLIC_HEADERS_FOLDER_PATH = ""; 289 | SDKROOT = iphoneos; 290 | SKIP_INSTALL = YES; 291 | }; 292 | name = Release; 293 | }; 294 | 52D9CA7973FD2BFBAB21C1CFD2F91ED0 /* Release */ = { 295 | isa = XCBuildConfiguration; 296 | buildSettings = { 297 | ALWAYS_SEARCH_USER_PATHS = NO; 298 | CLANG_ANALYZER_NONNULL = YES; 299 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 300 | CLANG_CXX_LIBRARY = "libc++"; 301 | CLANG_ENABLE_MODULES = YES; 302 | CLANG_ENABLE_OBJC_ARC = YES; 303 | CLANG_WARN_BOOL_CONVERSION = YES; 304 | CLANG_WARN_CONSTANT_CONVERSION = YES; 305 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 306 | CLANG_WARN_EMPTY_BODY = YES; 307 | CLANG_WARN_ENUM_CONVERSION = YES; 308 | CLANG_WARN_INT_CONVERSION = YES; 309 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 310 | CLANG_WARN_UNREACHABLE_CODE = YES; 311 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 312 | COPY_PHASE_STRIP = YES; 313 | ENABLE_NS_ASSERTIONS = NO; 314 | GCC_C_LANGUAGE_STANDARD = gnu99; 315 | GCC_PREPROCESSOR_DEFINITIONS = ( 316 | "POD_CONFIGURATION_RELEASE=1", 317 | "$(inherited)", 318 | ); 319 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 320 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 321 | GCC_WARN_UNDECLARED_SELECTOR = YES; 322 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 323 | GCC_WARN_UNUSED_FUNCTION = YES; 324 | GCC_WARN_UNUSED_VARIABLE = YES; 325 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 326 | STRIP_INSTALLED_PRODUCT = NO; 327 | SYMROOT = "${SRCROOT}/../build"; 328 | VALIDATE_PRODUCT = YES; 329 | }; 330 | name = Release; 331 | }; 332 | 904253F4E2A80E02C33FB27E94D50F82 /* Debug */ = { 333 | isa = XCBuildConfiguration; 334 | baseConfigurationReference = DDD97174E40C1A693C951A5F4E03DC2C /* EZRatingView.xcconfig */; 335 | buildSettings = { 336 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 337 | DEBUG_INFORMATION_FORMAT = dwarf; 338 | ENABLE_STRICT_OBJC_MSGSEND = YES; 339 | GCC_NO_COMMON_BLOCKS = YES; 340 | GCC_PREFIX_HEADER = "Target Support Files/EZRatingView/EZRatingView-prefix.pch"; 341 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 342 | MTL_ENABLE_DEBUG_INFO = YES; 343 | OTHER_LDFLAGS = ""; 344 | OTHER_LIBTOOLFLAGS = ""; 345 | PRIVATE_HEADERS_FOLDER_PATH = ""; 346 | PRODUCT_NAME = "$(TARGET_NAME)"; 347 | PUBLIC_HEADERS_FOLDER_PATH = ""; 348 | SDKROOT = iphoneos; 349 | SKIP_INSTALL = YES; 350 | }; 351 | name = Debug; 352 | }; 353 | 96D5002013C1F899F6B07C466C5042E8 /* Release */ = { 354 | isa = XCBuildConfiguration; 355 | baseConfigurationReference = ECE4E115D29537C3DAA2EF22E710D145 /* Pods-EZRatingViewDemo.release.xcconfig */; 356 | buildSettings = { 357 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 358 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 359 | ENABLE_STRICT_OBJC_MSGSEND = YES; 360 | GCC_NO_COMMON_BLOCKS = YES; 361 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 362 | MACH_O_TYPE = staticlib; 363 | MTL_ENABLE_DEBUG_INFO = NO; 364 | OTHER_LDFLAGS = ""; 365 | OTHER_LIBTOOLFLAGS = ""; 366 | PODS_ROOT = "$(SRCROOT)"; 367 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 368 | PRODUCT_NAME = "$(TARGET_NAME)"; 369 | SDKROOT = iphoneos; 370 | SKIP_INSTALL = YES; 371 | }; 372 | name = Release; 373 | }; 374 | 9E9803026902B76558A5B9B828BA5F7E /* Debug */ = { 375 | isa = XCBuildConfiguration; 376 | buildSettings = { 377 | ALWAYS_SEARCH_USER_PATHS = NO; 378 | CLANG_ANALYZER_NONNULL = YES; 379 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 380 | CLANG_CXX_LIBRARY = "libc++"; 381 | CLANG_ENABLE_MODULES = YES; 382 | CLANG_ENABLE_OBJC_ARC = YES; 383 | CLANG_WARN_BOOL_CONVERSION = YES; 384 | CLANG_WARN_CONSTANT_CONVERSION = YES; 385 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; 386 | CLANG_WARN_EMPTY_BODY = YES; 387 | CLANG_WARN_ENUM_CONVERSION = YES; 388 | CLANG_WARN_INT_CONVERSION = YES; 389 | CLANG_WARN_OBJC_ROOT_CLASS = YES; 390 | CLANG_WARN_UNREACHABLE_CODE = YES; 391 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 392 | COPY_PHASE_STRIP = NO; 393 | ENABLE_TESTABILITY = YES; 394 | GCC_C_LANGUAGE_STANDARD = gnu99; 395 | GCC_DYNAMIC_NO_PIC = NO; 396 | GCC_OPTIMIZATION_LEVEL = 0; 397 | GCC_PREPROCESSOR_DEFINITIONS = ( 398 | "POD_CONFIGURATION_DEBUG=1", 399 | "DEBUG=1", 400 | "$(inherited)", 401 | ); 402 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 403 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 404 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 405 | GCC_WARN_UNDECLARED_SELECTOR = YES; 406 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 407 | GCC_WARN_UNUSED_FUNCTION = YES; 408 | GCC_WARN_UNUSED_VARIABLE = YES; 409 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 410 | ONLY_ACTIVE_ARCH = YES; 411 | STRIP_INSTALLED_PRODUCT = NO; 412 | SYMROOT = "${SRCROOT}/../build"; 413 | }; 414 | name = Debug; 415 | }; 416 | EE2BEF6E77AA0B46A2F99F4A5EA77A52 /* Debug */ = { 417 | isa = XCBuildConfiguration; 418 | baseConfigurationReference = 043FA838AA92B22A0C639D4F0C62117D /* Pods-EZRatingViewDemo.debug.xcconfig */; 419 | buildSettings = { 420 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 421 | DEBUG_INFORMATION_FORMAT = dwarf; 422 | ENABLE_STRICT_OBJC_MSGSEND = YES; 423 | GCC_NO_COMMON_BLOCKS = YES; 424 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 425 | MACH_O_TYPE = staticlib; 426 | MTL_ENABLE_DEBUG_INFO = YES; 427 | OTHER_LDFLAGS = ""; 428 | OTHER_LIBTOOLFLAGS = ""; 429 | PODS_ROOT = "$(SRCROOT)"; 430 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 431 | PRODUCT_NAME = "$(TARGET_NAME)"; 432 | SDKROOT = iphoneos; 433 | SKIP_INSTALL = YES; 434 | }; 435 | name = Debug; 436 | }; 437 | /* End XCBuildConfiguration section */ 438 | 439 | /* Begin XCConfigurationList section */ 440 | 0896D3EEB34E0F5CD16D17184772373A /* Build configuration list for PBXNativeTarget "EZRatingView" */ = { 441 | isa = XCConfigurationList; 442 | buildConfigurations = ( 443 | 904253F4E2A80E02C33FB27E94D50F82 /* Debug */, 444 | 0A1963579E5D905B8C970C033A7E647D /* Release */, 445 | ); 446 | defaultConfigurationIsVisible = 0; 447 | defaultConfigurationName = Release; 448 | }; 449 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 450 | isa = XCConfigurationList; 451 | buildConfigurations = ( 452 | 9E9803026902B76558A5B9B828BA5F7E /* Debug */, 453 | 52D9CA7973FD2BFBAB21C1CFD2F91ED0 /* Release */, 454 | ); 455 | defaultConfigurationIsVisible = 0; 456 | defaultConfigurationName = Release; 457 | }; 458 | B2D821ED3B0F8EF537D17FC15C46048D /* Build configuration list for PBXNativeTarget "Pods-EZRatingViewDemo" */ = { 459 | isa = XCConfigurationList; 460 | buildConfigurations = ( 461 | EE2BEF6E77AA0B46A2F99F4A5EA77A52 /* Debug */, 462 | 96D5002013C1F899F6B07C466C5042E8 /* Release */, 463 | ); 464 | defaultConfigurationIsVisible = 0; 465 | defaultConfigurationName = Release; 466 | }; 467 | /* End XCConfigurationList section */ 468 | }; 469 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 470 | } 471 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/EZRatingView/EZRatingView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_EZRatingView : NSObject 3 | @end 4 | @implementation PodsDummy_EZRatingView 5 | @end 6 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/EZRatingView/EZRatingView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/EZRatingView/EZRatingView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/EZRatingView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EZRatingView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EZRatingView" 4 | OTHER_LDFLAGS = -framework "QuartzCore" 5 | PODS_BUILD_DIR = $BUILD_DIR 6 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## EZRatingView 5 | 6 | The MIT License (MIT) 7 | 8 | Copyright (c) 2015 Evian Zhow 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy of 11 | this software and associated documentation files (the "Software"), to deal in 12 | the Software without restriction, including without limitation the rights to 13 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 14 | the Software, and to permit persons to whom the Software is furnished to do so, 15 | subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 22 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 23 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 24 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 25 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 26 | 27 | Generated by CocoaPods - https://cocoapods.org 28 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | The MIT License (MIT) 18 | 19 | Copyright (c) 2015 Evian Zhow 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy of 22 | this software and associated documentation files (the "Software"), to deal in 23 | the Software without restriction, including without limitation the rights to 24 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 25 | the Software, and to permit persons to whom the Software is furnished to do so, 26 | subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 33 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 34 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 35 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 36 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 37 | 38 | Title 39 | EZRatingView 40 | Type 41 | PSGroupSpecifier 42 | 43 | 44 | FooterText 45 | Generated by CocoaPods - https://cocoapods.org 46 | Title 47 | 48 | Type 49 | PSGroupSpecifier 50 | 51 | 52 | StringsTable 53 | Acknowledgements 54 | Title 55 | Acknowledgements 56 | 57 | 58 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_EZRatingViewDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_EZRatingViewDemo 5 | @end 6 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 5 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 6 | 7 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 8 | 9 | install_framework() 10 | { 11 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 12 | local source="${BUILT_PRODUCTS_DIR}/$1" 13 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 14 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 15 | elif [ -r "$1" ]; then 16 | local source="$1" 17 | fi 18 | 19 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | 21 | if [ -L "${source}" ]; then 22 | echo "Symlinked..." 23 | source="$(readlink "${source}")" 24 | fi 25 | 26 | # use filter instead of exclude so missing patterns dont' throw errors 27 | echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 28 | rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 29 | 30 | local basename 31 | basename="$(basename -s .framework "$1")" 32 | binary="${destination}/${basename}.framework/${basename}" 33 | if ! [ -r "$binary" ]; then 34 | binary="${destination}/${basename}" 35 | fi 36 | 37 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 38 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 39 | strip_invalid_archs "$binary" 40 | fi 41 | 42 | # Resign the code if required by the build settings to avoid unstable apps 43 | code_sign_if_enabled "${destination}/$(basename "$1")" 44 | 45 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 46 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 47 | local swift_runtime_libs 48 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 49 | for lib in $swift_runtime_libs; do 50 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 51 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 52 | code_sign_if_enabled "${destination}/${lib}" 53 | done 54 | fi 55 | } 56 | 57 | # Signs a framework with the provided identity 58 | code_sign_if_enabled() { 59 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 60 | # Use the current code_sign_identitiy 61 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 62 | echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" 63 | /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" 64 | fi 65 | } 66 | 67 | # Strip invalid architectures 68 | strip_invalid_archs() { 69 | binary="$1" 70 | # Get architectures for current file 71 | archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" 72 | stripped="" 73 | for arch in $archs; do 74 | if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then 75 | # Strip non-valid architectures in-place 76 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 77 | stripped="$stripped $arch" 78 | fi 79 | done 80 | if [[ "$stripped" ]]; then 81 | echo "Stripped $binary of architectures:$stripped" 82 | fi 83 | } 84 | 85 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 5 | 6 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 7 | > "$RESOURCES_TO_COPY" 8 | 9 | XCASSET_FILES=() 10 | 11 | case "${TARGETED_DEVICE_FAMILY}" in 12 | 1,2) 13 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 14 | ;; 15 | 1) 16 | TARGET_DEVICE_ARGS="--target-device iphone" 17 | ;; 18 | 2) 19 | TARGET_DEVICE_ARGS="--target-device ipad" 20 | ;; 21 | *) 22 | TARGET_DEVICE_ARGS="--target-device mac" 23 | ;; 24 | esac 25 | 26 | realpath() { 27 | DIRECTORY="$(cd "${1%/*}" && pwd)" 28 | FILENAME="${1##*/}" 29 | echo "$DIRECTORY/$FILENAME" 30 | } 31 | 32 | install_resource() 33 | { 34 | if [[ "$1" = /* ]] ; then 35 | RESOURCE_PATH="$1" 36 | else 37 | RESOURCE_PATH="${PODS_ROOT}/$1" 38 | fi 39 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 40 | cat << EOM 41 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 42 | EOM 43 | exit 1 44 | fi 45 | case $RESOURCE_PATH in 46 | *.storyboard) 47 | echo "ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 48 | ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 49 | ;; 50 | *.xib) 51 | echo "ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" 52 | ibtool --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 53 | ;; 54 | *.framework) 55 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 56 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 57 | echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 58 | rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 59 | ;; 60 | *.xcdatamodel) 61 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" 62 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 63 | ;; 64 | *.xcdatamodeld) 65 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" 66 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 67 | ;; 68 | *.xcmappingmodel) 69 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" 70 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 71 | ;; 72 | *.xcassets) 73 | ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") 74 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 75 | ;; 76 | *) 77 | echo "$RESOURCE_PATH" 78 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 79 | ;; 80 | esac 81 | } 82 | 83 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 84 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 85 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 86 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 87 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 88 | fi 89 | rm -f "$RESOURCES_TO_COPY" 90 | 91 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] 92 | then 93 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 94 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 95 | while read line; do 96 | if [[ $line != "`realpath $PODS_ROOT`*" ]]; then 97 | XCASSET_FILES+=("$line") 98 | fi 99 | done <<<"$OTHER_XCASSETS" 100 | 101 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 102 | fi 103 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo.debug.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EZRatingView" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/EZRatingView" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EZRatingView" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"EZRatingView" -framework "QuartzCore" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Pods/Target Support Files/Pods-EZRatingViewDemo/Pods-EZRatingViewDemo.release.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/EZRatingView" 3 | LIBRARY_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/EZRatingView" 4 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/EZRatingView" 5 | OTHER_LDFLAGS = $(inherited) -ObjC -l"EZRatingView" -framework "QuartzCore" 6 | PODS_BUILD_DIR = $BUILD_DIR 7 | PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /EZRatingViewDemo/Screenshot-iOS6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evianzhow/EZRatingView/d063a927d0d8ee8543f049adbd117e28c5c92852/EZRatingViewDemo/Screenshot-iOS6.png -------------------------------------------------------------------------------- /EZRatingViewDemo/Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evianzhow/EZRatingView/d063a927d0d8ee8543f049adbd117e28c5c92852/EZRatingViewDemo/Screenshot.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Evian Zhow 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | test: 2 | xcodebuild \ 3 | -sdk iphonesimulator \ 4 | -workspace EZRatingViewDemo/EZRatingViewDemo.xcworkspace \ 5 | -scheme EZRatingViewDemo \ 6 | -configuration Debug \ 7 | clean build \ 8 | ONLY_ACTIVE_ARCH=NO \ 9 | TEST_AFTER_BUILD=YES \ 10 | GCC_PREPROCESSOR_DEFINITIONS="IS_TEST_FROM_COMMAND_LINE=1" 11 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # EZRatingView 2 | 3 | **This project is derivative from the original [AXRatingView](https://github.com/akiroom/AXRatingView), which now is maintained by myself. Feature Requests and PR are welcome.** 4 | 5 | - __Backward Compatibility Information__ 6 | - 2.0.0 -> 1.x.x 7 | - All the configuration to the slider moved from properties to ```markerDict``` 8 | 9 | - 0.x.x -> 1.x.x 10 | - UIControlEventValueChanged is triggered on control changing (See [#13](https://github.com/akiroom/AXRatingView/pull/13/)) 11 | 12 | ## Marker Customization Dictionary Settings 13 | 14 | |Key|Type|Description|Note| 15 | |---|---|---|---| 16 | |EZMarkerMaskCharacterKey|NSString|Normal marker character will be using|Required if no value of `EZMarkerMaskImageKey` present| 17 | |EZMarkerHighlightCharacterKey|NSString|Highlight marker character will be using, same as `EZMarkerMaskCharacterKey` if not provided|Optional| 18 | |EZMarkerCharacterFontKey|UIFont|Marker character size will be using, `[UIFont systemFontOfSize:22.0]` will be used if not provided|Optional| 19 | |EZMarkerMaskImageKey|UIImage|Normal marker image will be using|Required if no value of `EZMarkerMaskCharacterKey` present| 20 | |EZMarkerHighlightImageKey|UIImage|Highlight marker image will be using, same as `EZMarkerMaskImageKey` if not provided|Optional| 21 | |EZMarkerBaseColorKey|UIColor|Normal marker color will be using, `[UIColor darkGrayColor]` will be used if not provided|Optional| 22 | |EZMarkerHighlightColorKey|UIColor|Highlight marker color will be using, `[UIColor colorWithRed:1.0 green:0.8 blue:0.0 alpha:1.0]` will be used if not provided|Optional| 23 | 24 | If both `EZMarkerMaskImageKey` and `EZMarkerMaskCharacterKey` values are provided, `EZMarkerMaskImageKey` will be the first prioritized to use. 25 | 26 | ## About 27 | Star mark rating view for a review scene. 28 | 29 | - Smooth rating (ex. 4.22 -> 4.23) 30 | - Step rating by 1.0 (ex. 3.00 -> 4.00) 31 | - Step rating by 0.5 (ex. 3.00 -> 3.50 -> 4.00) 32 | - Set other unicode character (not star character) 33 | - Set image 34 | - Set color 35 | - Editable & Not Editable 36 | - Easy to Get/Set. 37 | - Compatibility for iOS6, iOS7, iOS8 38 | 39 | ## Screenshots 40 | ### iOS7 41 | 42 | ![iOS7 Screenshot](https://raw.github.com/EvianZhow/EZRatingView/master/EZRatingViewDemo/Screenshot.png) 43 | 44 | ### iOS6 45 | 46 | ![iOS6 Screenshot](https://raw.github.com/EvianZhow/EZRatingView/master/EZRatingViewDemo/Screenshot-iOS6.png) 47 | 48 | # Development 49 | 50 | Using `.clang-format` under EZRatingViewDemo directory to format the code. 51 | --------------------------------------------------------------------------------