├── .gitignore ├── CHANGELOG.md ├── Classes ├── objc │ ├── GBFlatButton.h │ ├── GBFlatButton.m │ ├── GBFlatSelectableButton.h │ ├── GBFlatSelectableButton.m │ ├── UIColor+GBFlatButton.h │ └── UIColor+GBFlatButton.m └── swift │ ├── GBFlatButton.swift │ ├── GBFlatButtonColorExtensions.swift │ ├── GBFlatButtonExample-Bridging-Header.h │ └── GBFlatSelectableButton.swift ├── Example ├── GBFlatButtonExample.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── GBFlatButtonExample.xcworkspace │ └── contents.xcworkspacedata ├── GBFlatButtonExample │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── GBFlatButtonExample-Info.plist │ ├── GBFlatButtonExample-Prefix.pch │ ├── Images.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── ViewController.h │ ├── ViewController.m │ ├── ViewController.xib │ ├── en.lproj │ │ └── InfoPlist.strings │ └── main.m ├── GBFlatButtonExampleTests │ ├── GBFlatButtonExampleTests-Info.plist │ ├── GBFlatButtonExampleTests.m │ └── en.lproj │ │ └── InfoPlist.strings ├── Podfile ├── Podfile.lock └── Pods │ ├── Local Podspecs │ └── GBFlatButton.podspec │ ├── Manifest.lock │ ├── Pods-GBFlatButton-Private.xcconfig │ ├── Pods-GBFlatButton-dummy.m │ ├── Pods-GBFlatButton-prefix.pch │ ├── Pods-GBFlatButton.xcconfig │ ├── Pods-acknowledgements.markdown │ ├── Pods-acknowledgements.plist │ ├── Pods-dummy.m │ ├── Pods-environment.h │ ├── Pods-resources.sh │ ├── Pods.xcconfig │ └── Pods.xcodeproj │ └── project.pbxproj ├── GBFlatButton.podspec ├── LICENSE ├── README.md ├── Rakefile └── screenshot.png /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # GBFlatButton CHANGELOG 2 | 3 | ## 0.1.0 4 | 5 | Initial release. 6 | -------------------------------------------------------------------------------- /Classes/objc/GBFlatButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatButton.h 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | * GBFlatButton is a simple subclass of UIButton with a flat UI. 13 | * Based on its tintColor, it draws a 1.0pt border and a title using 14 | * the same color. The corner radius is calculated based on 15 | * half of its height. 16 | * 17 | * For a fullfilled button, just set the `selected` property to YES. 18 | */ 19 | @interface GBFlatButton : UIButton 20 | @end 21 | -------------------------------------------------------------------------------- /Classes/objc/GBFlatButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatButton.m 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import "GBFlatButton.h" 10 | #import 11 | 12 | static CGFloat const kHorizontalPadding = 14.0f; 13 | 14 | @implementation GBFlatButton 15 | { 16 | UIColor *buttonColor; 17 | } 18 | 19 | #pragma mark - Constructors 20 | 21 | - (id)init 22 | { 23 | self = [super init]; 24 | if (self) { 25 | [self customizeAppearance]; 26 | } 27 | return self; 28 | } 29 | 30 | - (id)initWithFrame:(CGRect)frame 31 | { 32 | self = [super initWithFrame:frame]; 33 | if (self) { 34 | [self customizeAppearance]; 35 | } 36 | return self; 37 | } 38 | 39 | - (id)initWithCoder:(NSCoder *)aDecoder 40 | { 41 | self = [super initWithCoder:aDecoder]; 42 | if (self) { 43 | [self customizeAppearance]; 44 | } 45 | return self; 46 | } 47 | 48 | #pragma mark - Appearance 49 | 50 | - (void)customizeAppearance 51 | { 52 | BOOL containsEdgeInsets = ! UIEdgeInsetsEqualToEdgeInsets(self.contentEdgeInsets, UIEdgeInsetsZero); 53 | self.contentEdgeInsets = containsEdgeInsets ? self.contentEdgeInsets : UIEdgeInsetsMake(0, kHorizontalPadding, 0, kHorizontalPadding); 54 | self.layer.borderWidth = self.layer.borderWidth ?: 1.0f; 55 | self.layer.cornerRadius = self.layer.cornerRadius ?: CGRectGetHeight(self.frame) / 2.0f; 56 | self.layer.masksToBounds = YES; 57 | } 58 | 59 | - (void)setSelected:(BOOL)selected 60 | { 61 | [super setSelected:selected]; 62 | 63 | if (selected) 64 | self.backgroundColor = self.tintColor; 65 | else 66 | self.backgroundColor = [UIColor whiteColor]; 67 | } 68 | 69 | - (void)drawRect:(CGRect)rect 70 | { 71 | self.layer.borderColor = self.tintColor.CGColor; 72 | [self setTitleColor:self.tintColor 73 | forState:UIControlStateNormal]; 74 | [self setTitleColor:[UIColor whiteColor] 75 | forState:UIControlStateSelected]; 76 | } 77 | 78 | - (void)setTintColor:(UIColor *)tintColor 79 | { 80 | [super setTintColor:tintColor]; 81 | buttonColor = tintColor; 82 | } 83 | 84 | - (UIColor *)tintColor 85 | { 86 | return buttonColor ?: [super tintColor]; 87 | } 88 | 89 | @end 90 | -------------------------------------------------------------------------------- /Classes/objc/GBFlatSelectableButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatSelectableButton.h 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 4/16/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import "GBFlatButton.h" 10 | 11 | /** 12 | * GBFlatSelectableButton is a subclass of GBFlatButton with a selection 13 | * feature. Based on its tintColor, it draws a 1.0pt border and a title using 14 | * the same color. The corner radius is calculated based on 15 | * half of its height. 16 | * 17 | * When touched up inside, it toggles its selection state to draw itself 18 | * filled with its tintColor or not. 19 | */ 20 | @interface GBFlatSelectableButton : GBFlatButton 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Classes/objc/GBFlatSelectableButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatSelectableButton.m 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 4/16/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import "GBFlatSelectableButton.h" 10 | 11 | @implementation GBFlatSelectableButton 12 | 13 | #pragma mark - Constructors 14 | 15 | - (id)init 16 | { 17 | self = [super init]; 18 | if (self) { 19 | [self addSelectionHandler]; 20 | } 21 | return self; 22 | } 23 | 24 | - (id)initWithFrame:(CGRect)frame 25 | { 26 | self = [super initWithFrame:frame]; 27 | if (self) { 28 | [self addSelectionHandler]; 29 | } 30 | return self; 31 | } 32 | 33 | - (id)initWithCoder:(NSCoder *)aDecoder 34 | { 35 | self = [super initWithCoder:aDecoder]; 36 | if (self) { 37 | [self addSelectionHandler]; 38 | } 39 | return self; 40 | } 41 | 42 | #pragma mark - Selection Handler 43 | 44 | - (void)addSelectionHandler 45 | { 46 | [self addTarget:self 47 | action:@selector(toggleButtonSelection) 48 | forControlEvents:UIControlEventTouchUpInside]; 49 | } 50 | 51 | - (void)toggleButtonSelection 52 | { 53 | self.selected = !self.selected; 54 | 55 | UIControlState state; 56 | if (self.selected) { 57 | state = UIControlStateSelected; 58 | } else { 59 | state = UIControlStateNormal; 60 | } 61 | 62 | NSString *title = [self titleForState:state]; 63 | [self setTitle:title forState:state]; 64 | 65 | [self invalidateIntrinsicContentSize]; 66 | } 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /Classes/objc/UIColor+GBFlatButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+GBFlatButton.h 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 4/16/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIColor (GBFlatButton) 12 | 13 | 14 | + (UIColor *)gb_pinkColor; 15 | + (UIColor *)gb_yellowColor; 16 | + (UIColor *)gb_orangeColor; 17 | + (UIColor *)gb_greenColor; 18 | + (UIColor *)gb_blueColor; 19 | + (UIColor *)gb_purpleColor; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Classes/objc/UIColor+GBFlatButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+GBFlatButton.m 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 4/16/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import "UIColor+GBFlatButton.h" 10 | 11 | @implementation UIColor (GBFlatButton) 12 | 13 | + (UIColor *)gb_pinkColor 14 | { 15 | return [UIColor colorWithRed:206/255.0 green:67/255.0 blue:130/255.0 alpha:1]; 16 | } 17 | 18 | + (UIColor *)gb_yellowColor 19 | { 20 | return [UIColor colorWithRed:253/255.0 green:197/255.0 blue:0/255.0 alpha:1]; 21 | } 22 | 23 | + (UIColor *)gb_orangeColor 24 | { 25 | return [UIColor colorWithRed:255/255.0 green:167/255.0 blue:28/255.0 alpha:1]; 26 | } 27 | 28 | + (UIColor *)gb_greenColor 29 | { 30 | return [UIColor colorWithRed:158/255.0 green:211/255.0 blue:15/255.0 alpha:1]; 31 | } 32 | 33 | + (UIColor *)gb_blueColor 34 | { 35 | return [UIColor colorWithRed:100/255.0 green:194/255.0 blue:227/255.0 alpha:1]; 36 | } 37 | 38 | + (UIColor *)gb_purpleColor 39 | { 40 | return [UIColor colorWithRed:124/255.0 green:118/255.0 blue:247/255.0 alpha:1]; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Classes/swift/GBFlatButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatButton.swift 3 | // GBFlatButton 4 | // 5 | // Created by Gustavo Barbosa on 6/6/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class GBFlatButton : UIButton { 12 | 13 | let kHorizontalPadding : Float = 14.0 14 | 15 | var buttonColor: UIColor? 16 | 17 | init(frame: CGRect) { 18 | super.init(frame: frame) 19 | _customizeAppearance() 20 | } 21 | 22 | init(coder aDecoder: NSCoder!) { 23 | super.init(coder: aDecoder) 24 | _customizeAppearance() 25 | } 26 | 27 | override func drawRect(rect: CGRect) { 28 | self.layer.borderColor = self.tintColor.CGColor 29 | self.setTitleColor(self.tintColor, forState: UIControlState.Normal) 30 | self.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Selected) 31 | } 32 | 33 | func _customizeAppearance() { 34 | 35 | let containsEdgeInsets = !UIEdgeInsetsEqualToEdgeInsets(contentEdgeInsets, UIEdgeInsetsZero) 36 | contentEdgeInsets = containsEdgeInsets ? contentEdgeInsets : UIEdgeInsets(top: 0, left: kHorizontalPadding, bottom: 0, right: kHorizontalPadding) 37 | 38 | if layer.borderWidth == 0.0 { 39 | layer.borderWidth = 1.0 40 | } 41 | 42 | layer.borderColor = tintColor.CGColor 43 | 44 | if layer.cornerRadius == 0.0 { 45 | layer.cornerRadius = frame.size.height / 2.0 46 | } 47 | 48 | layer.masksToBounds = true 49 | } 50 | 51 | override var selected: Bool { 52 | get { 53 | return super.selected 54 | } 55 | set { 56 | super.selected = newValue 57 | if super.selected { 58 | self.backgroundColor = self.tintColor 59 | } else { 60 | self.backgroundColor = UIColor.whiteColor() 61 | } 62 | } 63 | } 64 | 65 | override var tintColor: UIColor! { 66 | get { 67 | if let bc = self.buttonColor { 68 | return bc 69 | } else { 70 | return super.tintColor 71 | } 72 | } 73 | set { 74 | super.tintColor = newValue 75 | self.buttonColor = newValue 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /Classes/swift/GBFlatButtonColorExtensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // GBFlatButtonSwiftExample 4 | // 5 | // Created by Gustavo Barbosa on 6/10/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | extension UIColor { 12 | 13 | class func gb_pinkColor() -> UIColor! { 14 | return _gbFlatButtonColorWithR(206, g: 67, b: 130) 15 | } 16 | 17 | class func gb_yellowColor() -> UIColor! { 18 | return _gbFlatButtonColorWithR(253, g: 197, b: 0) 19 | } 20 | 21 | class func gb_orangeColor() -> UIColor! { 22 | return _gbFlatButtonColorWithR(255, g: 167, b: 28) 23 | } 24 | 25 | class func gb_greenColor() -> UIColor! { 26 | return _gbFlatButtonColorWithR(158, g: 211, b: 15) 27 | } 28 | 29 | class func gb_blueColor() -> UIColor! { 30 | return _gbFlatButtonColorWithR(100, g: 194, b: 227) 31 | } 32 | 33 | class func gb_purpleColor() -> UIColor! { 34 | return _gbFlatButtonColorWithR(124, g: 118, b: 247) 35 | } 36 | 37 | class func _gbFlatButtonColorWithR(r: Int, g: Int, b: Int) -> UIColor! { 38 | func _percent(level: Int) -> CGFloat { 39 | return Float(level)/255.0 40 | } 41 | return UIColor(red: _percent(r), green: _percent(g), blue: _percent(b), alpha: 1.0) 42 | } 43 | } -------------------------------------------------------------------------------- /Classes/swift/GBFlatButtonExample-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | -------------------------------------------------------------------------------- /Classes/swift/GBFlatSelectableButton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatSelectableButton.swift 3 | // GBFlatButtonSwiftExample 4 | // 5 | // Created by Gustavo Barbosa on 6/10/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class GBFlatSelectableButton: GBFlatButton { 12 | 13 | init(frame: CGRect) { 14 | super.init(frame: frame) 15 | self.addSelectionHandler() 16 | } 17 | 18 | init(coder aDecoder: NSCoder!) { 19 | super.init(coder: aDecoder) 20 | self.addSelectionHandler() 21 | } 22 | 23 | func addSelectionHandler() { 24 | self.addTarget(self, action: "toggleButtonSelection", forControlEvents: UIControlEvents.TouchUpInside) 25 | } 26 | 27 | func toggleButtonSelection() { 28 | self.selected = !self.selected 29 | 30 | if self.selected { 31 | let state = UIControlState.Selected 32 | } else { 33 | let state = UIControlState.Normal 34 | } 35 | 36 | let title = self.titleForState(state) 37 | self.setTitle(title, forState: state) 38 | 39 | self.invalidateIntrinsicContentSize() 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 15693CF618FDD0FB00AAC8BE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15693CF518FDD0FB00AAC8BE /* Foundation.framework */; }; 11 | 15693CF818FDD0FB00AAC8BE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15693CF718FDD0FB00AAC8BE /* CoreGraphics.framework */; }; 12 | 15693CFA18FDD0FB00AAC8BE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15693CF918FDD0FB00AAC8BE /* UIKit.framework */; }; 13 | 15693D0018FDD0FB00AAC8BE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 15693CFE18FDD0FB00AAC8BE /* InfoPlist.strings */; }; 14 | 15693D0218FDD0FB00AAC8BE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 15693D0118FDD0FB00AAC8BE /* main.m */; }; 15 | 15693D0618FDD0FB00AAC8BE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 15693D0518FDD0FB00AAC8BE /* AppDelegate.m */; }; 16 | 15693D0818FDD0FB00AAC8BE /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 15693D0718FDD0FB00AAC8BE /* Images.xcassets */; }; 17 | 15693D0F18FDD0FB00AAC8BE /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15693D0E18FDD0FB00AAC8BE /* XCTest.framework */; }; 18 | 15693D1018FDD0FB00AAC8BE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15693CF518FDD0FB00AAC8BE /* Foundation.framework */; }; 19 | 15693D1118FDD0FB00AAC8BE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 15693CF918FDD0FB00AAC8BE /* UIKit.framework */; }; 20 | 15693D1918FDD0FB00AAC8BE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 15693D1718FDD0FB00AAC8BE /* InfoPlist.strings */; }; 21 | 15693D1B18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 15693D1A18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.m */; }; 22 | 15693D2B18FDD6DA00AAC8BE /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 15693D2A18FDD6DA00AAC8BE /* ViewController.m */; }; 23 | 15B30EFE18FEC7A300A45AD1 /* ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 15B30EFD18FEC7A300A45AD1 /* ViewController.xib */; }; 24 | 15C7A4E919474CC00031491D /* GBFlatButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 15C7A4E419474CC00031491D /* GBFlatButton.m */; }; 25 | 15C7A4EA19474CC00031491D /* GBFlatSelectableButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 15C7A4E619474CC00031491D /* GBFlatSelectableButton.m */; }; 26 | 15C7A4EB19474CC00031491D /* UIColor+GBFlatButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 15C7A4E819474CC00031491D /* UIColor+GBFlatButton.m */; }; 27 | 676DB338E9C94D93AF9BFC34 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A78471F00484B999A50E6FB /* libPods.a */; }; 28 | /* End PBXBuildFile section */ 29 | 30 | /* Begin PBXContainerItemProxy section */ 31 | 15693D1218FDD0FB00AAC8BE /* PBXContainerItemProxy */ = { 32 | isa = PBXContainerItemProxy; 33 | containerPortal = 15693CEA18FDD0FB00AAC8BE /* Project object */; 34 | proxyType = 1; 35 | remoteGlobalIDString = 15693CF118FDD0FB00AAC8BE; 36 | remoteInfo = GBFlatButtonExample; 37 | }; 38 | /* End PBXContainerItemProxy section */ 39 | 40 | /* Begin PBXFileReference section */ 41 | 0A78471F00484B999A50E6FB /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; 42 | 15693CF218FDD0FB00AAC8BE /* GBFlatButtonExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GBFlatButtonExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 15693CF518FDD0FB00AAC8BE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 44 | 15693CF718FDD0FB00AAC8BE /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 45 | 15693CF918FDD0FB00AAC8BE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 46 | 15693CFD18FDD0FB00AAC8BE /* GBFlatButtonExample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GBFlatButtonExample-Info.plist"; sourceTree = ""; }; 47 | 15693CFF18FDD0FB00AAC8BE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 48 | 15693D0118FDD0FB00AAC8BE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 49 | 15693D0318FDD0FB00AAC8BE /* GBFlatButtonExample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "GBFlatButtonExample-Prefix.pch"; sourceTree = ""; }; 50 | 15693D0418FDD0FB00AAC8BE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 51 | 15693D0518FDD0FB00AAC8BE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 52 | 15693D0718FDD0FB00AAC8BE /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 53 | 15693D0D18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GBFlatButtonExampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | 15693D0E18FDD0FB00AAC8BE /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 55 | 15693D1618FDD0FB00AAC8BE /* GBFlatButtonExampleTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GBFlatButtonExampleTests-Info.plist"; sourceTree = ""; }; 56 | 15693D1818FDD0FB00AAC8BE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 57 | 15693D1A18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GBFlatButtonExampleTests.m; sourceTree = ""; }; 58 | 15693D2918FDD6D900AAC8BE /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 59 | 15693D2A18FDD6DA00AAC8BE /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 60 | 15B30EFD18FEC7A300A45AD1 /* ViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController.xib; sourceTree = ""; }; 61 | 15C7A4E319474CC00031491D /* GBFlatButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GBFlatButton.h; path = ../../Classes/objc/GBFlatButton.h; sourceTree = ""; }; 62 | 15C7A4E419474CC00031491D /* GBFlatButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GBFlatButton.m; path = ../../Classes/objc/GBFlatButton.m; sourceTree = ""; }; 63 | 15C7A4E519474CC00031491D /* GBFlatSelectableButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GBFlatSelectableButton.h; path = ../../Classes/objc/GBFlatSelectableButton.h; sourceTree = ""; }; 64 | 15C7A4E619474CC00031491D /* GBFlatSelectableButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = GBFlatSelectableButton.m; path = ../../Classes/objc/GBFlatSelectableButton.m; sourceTree = ""; }; 65 | 15C7A4E719474CC00031491D /* UIColor+GBFlatButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+GBFlatButton.h"; path = "../../Classes/objc/UIColor+GBFlatButton.h"; sourceTree = ""; }; 66 | 15C7A4E819474CC00031491D /* UIColor+GBFlatButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+GBFlatButton.m"; path = "../../Classes/objc/UIColor+GBFlatButton.m"; sourceTree = ""; }; 67 | 76958FAFBADF44FA8E518B4E /* Pods.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.xcconfig; path = Pods/Pods.xcconfig; sourceTree = ""; }; 68 | /* End PBXFileReference section */ 69 | 70 | /* Begin PBXFrameworksBuildPhase section */ 71 | 15693CEF18FDD0FB00AAC8BE /* Frameworks */ = { 72 | isa = PBXFrameworksBuildPhase; 73 | buildActionMask = 2147483647; 74 | files = ( 75 | 15693CF818FDD0FB00AAC8BE /* CoreGraphics.framework in Frameworks */, 76 | 15693CFA18FDD0FB00AAC8BE /* UIKit.framework in Frameworks */, 77 | 15693CF618FDD0FB00AAC8BE /* Foundation.framework in Frameworks */, 78 | 676DB338E9C94D93AF9BFC34 /* libPods.a in Frameworks */, 79 | ); 80 | runOnlyForDeploymentPostprocessing = 0; 81 | }; 82 | 15693D0A18FDD0FB00AAC8BE /* Frameworks */ = { 83 | isa = PBXFrameworksBuildPhase; 84 | buildActionMask = 2147483647; 85 | files = ( 86 | 15693D0F18FDD0FB00AAC8BE /* XCTest.framework in Frameworks */, 87 | 15693D1118FDD0FB00AAC8BE /* UIKit.framework in Frameworks */, 88 | 15693D1018FDD0FB00AAC8BE /* Foundation.framework in Frameworks */, 89 | ); 90 | runOnlyForDeploymentPostprocessing = 0; 91 | }; 92 | /* End PBXFrameworksBuildPhase section */ 93 | 94 | /* Begin PBXGroup section */ 95 | 15693CE918FDD0FB00AAC8BE = { 96 | isa = PBXGroup; 97 | children = ( 98 | 15693CFB18FDD0FB00AAC8BE /* GBFlatButtonExample */, 99 | 15693D1418FDD0FB00AAC8BE /* GBFlatButtonExampleTests */, 100 | 15693CF418FDD0FB00AAC8BE /* Frameworks */, 101 | 15693CF318FDD0FB00AAC8BE /* Products */, 102 | 76958FAFBADF44FA8E518B4E /* Pods.xcconfig */, 103 | ); 104 | sourceTree = ""; 105 | }; 106 | 15693CF318FDD0FB00AAC8BE /* Products */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | 15693CF218FDD0FB00AAC8BE /* GBFlatButtonExample.app */, 110 | 15693D0D18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.xctest */, 111 | ); 112 | name = Products; 113 | sourceTree = ""; 114 | }; 115 | 15693CF418FDD0FB00AAC8BE /* Frameworks */ = { 116 | isa = PBXGroup; 117 | children = ( 118 | 15693CF518FDD0FB00AAC8BE /* Foundation.framework */, 119 | 15693CF718FDD0FB00AAC8BE /* CoreGraphics.framework */, 120 | 15693CF918FDD0FB00AAC8BE /* UIKit.framework */, 121 | 15693D0E18FDD0FB00AAC8BE /* XCTest.framework */, 122 | 0A78471F00484B999A50E6FB /* libPods.a */, 123 | ); 124 | name = Frameworks; 125 | sourceTree = ""; 126 | }; 127 | 15693CFB18FDD0FB00AAC8BE /* GBFlatButtonExample */ = { 128 | isa = PBXGroup; 129 | children = ( 130 | 15B30F0218FED1B000A45AD1 /* Source */, 131 | 15693D0418FDD0FB00AAC8BE /* AppDelegate.h */, 132 | 15693D0518FDD0FB00AAC8BE /* AppDelegate.m */, 133 | 15693D0718FDD0FB00AAC8BE /* Images.xcassets */, 134 | 15693CFC18FDD0FB00AAC8BE /* Supporting Files */, 135 | 15693D2918FDD6D900AAC8BE /* ViewController.h */, 136 | 15693D2A18FDD6DA00AAC8BE /* ViewController.m */, 137 | 15B30EFD18FEC7A300A45AD1 /* ViewController.xib */, 138 | ); 139 | path = GBFlatButtonExample; 140 | sourceTree = ""; 141 | }; 142 | 15693CFC18FDD0FB00AAC8BE /* Supporting Files */ = { 143 | isa = PBXGroup; 144 | children = ( 145 | 15693CFD18FDD0FB00AAC8BE /* GBFlatButtonExample-Info.plist */, 146 | 15693CFE18FDD0FB00AAC8BE /* InfoPlist.strings */, 147 | 15693D0118FDD0FB00AAC8BE /* main.m */, 148 | 15693D0318FDD0FB00AAC8BE /* GBFlatButtonExample-Prefix.pch */, 149 | ); 150 | name = "Supporting Files"; 151 | sourceTree = ""; 152 | }; 153 | 15693D1418FDD0FB00AAC8BE /* GBFlatButtonExampleTests */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 15693D1A18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.m */, 157 | 15693D1518FDD0FB00AAC8BE /* Supporting Files */, 158 | ); 159 | path = GBFlatButtonExampleTests; 160 | sourceTree = ""; 161 | }; 162 | 15693D1518FDD0FB00AAC8BE /* Supporting Files */ = { 163 | isa = PBXGroup; 164 | children = ( 165 | 15693D1618FDD0FB00AAC8BE /* GBFlatButtonExampleTests-Info.plist */, 166 | 15693D1718FDD0FB00AAC8BE /* InfoPlist.strings */, 167 | ); 168 | name = "Supporting Files"; 169 | sourceTree = ""; 170 | }; 171 | 15B30F0218FED1B000A45AD1 /* Source */ = { 172 | isa = PBXGroup; 173 | children = ( 174 | 15C7A4E319474CC00031491D /* GBFlatButton.h */, 175 | 15C7A4E419474CC00031491D /* GBFlatButton.m */, 176 | 15C7A4E519474CC00031491D /* GBFlatSelectableButton.h */, 177 | 15C7A4E619474CC00031491D /* GBFlatSelectableButton.m */, 178 | 15C7A4E719474CC00031491D /* UIColor+GBFlatButton.h */, 179 | 15C7A4E819474CC00031491D /* UIColor+GBFlatButton.m */, 180 | ); 181 | name = Source; 182 | sourceTree = ""; 183 | }; 184 | /* End PBXGroup section */ 185 | 186 | /* Begin PBXNativeTarget section */ 187 | 15693CF118FDD0FB00AAC8BE /* GBFlatButtonExample */ = { 188 | isa = PBXNativeTarget; 189 | buildConfigurationList = 15693D1E18FDD0FB00AAC8BE /* Build configuration list for PBXNativeTarget "GBFlatButtonExample" */; 190 | buildPhases = ( 191 | F40A91D2A4754C448DF44EF5 /* Check Pods Manifest.lock */, 192 | 15693CEE18FDD0FB00AAC8BE /* Sources */, 193 | 15693CEF18FDD0FB00AAC8BE /* Frameworks */, 194 | 15693CF018FDD0FB00AAC8BE /* Resources */, 195 | D00C86E707E7463DA1AA1607 /* Copy Pods Resources */, 196 | ); 197 | buildRules = ( 198 | ); 199 | dependencies = ( 200 | ); 201 | name = GBFlatButtonExample; 202 | productName = GBFlatButtonExample; 203 | productReference = 15693CF218FDD0FB00AAC8BE /* GBFlatButtonExample.app */; 204 | productType = "com.apple.product-type.application"; 205 | }; 206 | 15693D0C18FDD0FB00AAC8BE /* GBFlatButtonExampleTests */ = { 207 | isa = PBXNativeTarget; 208 | buildConfigurationList = 15693D2118FDD0FB00AAC8BE /* Build configuration list for PBXNativeTarget "GBFlatButtonExampleTests" */; 209 | buildPhases = ( 210 | 15693D0918FDD0FB00AAC8BE /* Sources */, 211 | 15693D0A18FDD0FB00AAC8BE /* Frameworks */, 212 | 15693D0B18FDD0FB00AAC8BE /* Resources */, 213 | ); 214 | buildRules = ( 215 | ); 216 | dependencies = ( 217 | 15693D1318FDD0FB00AAC8BE /* PBXTargetDependency */, 218 | ); 219 | name = GBFlatButtonExampleTests; 220 | productName = GBFlatButtonExampleTests; 221 | productReference = 15693D0D18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.xctest */; 222 | productType = "com.apple.product-type.bundle.unit-test"; 223 | }; 224 | /* End PBXNativeTarget section */ 225 | 226 | /* Begin PBXProject section */ 227 | 15693CEA18FDD0FB00AAC8BE /* Project object */ = { 228 | isa = PBXProject; 229 | attributes = { 230 | LastUpgradeCheck = 0510; 231 | ORGANIZATIONNAME = "Gustavo Barbosa"; 232 | TargetAttributes = { 233 | 15693D0C18FDD0FB00AAC8BE = { 234 | TestTargetID = 15693CF118FDD0FB00AAC8BE; 235 | }; 236 | }; 237 | }; 238 | buildConfigurationList = 15693CED18FDD0FB00AAC8BE /* Build configuration list for PBXProject "GBFlatButtonExample" */; 239 | compatibilityVersion = "Xcode 3.2"; 240 | developmentRegion = English; 241 | hasScannedForEncodings = 0; 242 | knownRegions = ( 243 | en, 244 | ); 245 | mainGroup = 15693CE918FDD0FB00AAC8BE; 246 | productRefGroup = 15693CF318FDD0FB00AAC8BE /* Products */; 247 | projectDirPath = ""; 248 | projectRoot = ""; 249 | targets = ( 250 | 15693CF118FDD0FB00AAC8BE /* GBFlatButtonExample */, 251 | 15693D0C18FDD0FB00AAC8BE /* GBFlatButtonExampleTests */, 252 | ); 253 | }; 254 | /* End PBXProject section */ 255 | 256 | /* Begin PBXResourcesBuildPhase section */ 257 | 15693CF018FDD0FB00AAC8BE /* Resources */ = { 258 | isa = PBXResourcesBuildPhase; 259 | buildActionMask = 2147483647; 260 | files = ( 261 | 15693D0018FDD0FB00AAC8BE /* InfoPlist.strings in Resources */, 262 | 15B30EFE18FEC7A300A45AD1 /* ViewController.xib in Resources */, 263 | 15693D0818FDD0FB00AAC8BE /* Images.xcassets in Resources */, 264 | ); 265 | runOnlyForDeploymentPostprocessing = 0; 266 | }; 267 | 15693D0B18FDD0FB00AAC8BE /* Resources */ = { 268 | isa = PBXResourcesBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | 15693D1918FDD0FB00AAC8BE /* InfoPlist.strings in Resources */, 272 | ); 273 | runOnlyForDeploymentPostprocessing = 0; 274 | }; 275 | /* End PBXResourcesBuildPhase section */ 276 | 277 | /* Begin PBXShellScriptBuildPhase section */ 278 | D00C86E707E7463DA1AA1607 /* Copy Pods Resources */ = { 279 | isa = PBXShellScriptBuildPhase; 280 | buildActionMask = 2147483647; 281 | files = ( 282 | ); 283 | inputPaths = ( 284 | ); 285 | name = "Copy Pods Resources"; 286 | outputPaths = ( 287 | ); 288 | runOnlyForDeploymentPostprocessing = 0; 289 | shellPath = /bin/sh; 290 | shellScript = "\"${SRCROOT}/Pods/Pods-resources.sh\"\n"; 291 | showEnvVarsInLog = 0; 292 | }; 293 | F40A91D2A4754C448DF44EF5 /* Check Pods Manifest.lock */ = { 294 | isa = PBXShellScriptBuildPhase; 295 | buildActionMask = 2147483647; 296 | files = ( 297 | ); 298 | inputPaths = ( 299 | ); 300 | name = "Check Pods Manifest.lock"; 301 | outputPaths = ( 302 | ); 303 | runOnlyForDeploymentPostprocessing = 0; 304 | shellPath = /bin/sh; 305 | 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"; 306 | showEnvVarsInLog = 0; 307 | }; 308 | /* End PBXShellScriptBuildPhase section */ 309 | 310 | /* Begin PBXSourcesBuildPhase section */ 311 | 15693CEE18FDD0FB00AAC8BE /* Sources */ = { 312 | isa = PBXSourcesBuildPhase; 313 | buildActionMask = 2147483647; 314 | files = ( 315 | 15693D2B18FDD6DA00AAC8BE /* ViewController.m in Sources */, 316 | 15C7A4E919474CC00031491D /* GBFlatButton.m in Sources */, 317 | 15693D0618FDD0FB00AAC8BE /* AppDelegate.m in Sources */, 318 | 15C7A4EB19474CC00031491D /* UIColor+GBFlatButton.m in Sources */, 319 | 15C7A4EA19474CC00031491D /* GBFlatSelectableButton.m in Sources */, 320 | 15693D0218FDD0FB00AAC8BE /* main.m in Sources */, 321 | ); 322 | runOnlyForDeploymentPostprocessing = 0; 323 | }; 324 | 15693D0918FDD0FB00AAC8BE /* Sources */ = { 325 | isa = PBXSourcesBuildPhase; 326 | buildActionMask = 2147483647; 327 | files = ( 328 | 15693D1B18FDD0FB00AAC8BE /* GBFlatButtonExampleTests.m in Sources */, 329 | ); 330 | runOnlyForDeploymentPostprocessing = 0; 331 | }; 332 | /* End PBXSourcesBuildPhase section */ 333 | 334 | /* Begin PBXTargetDependency section */ 335 | 15693D1318FDD0FB00AAC8BE /* PBXTargetDependency */ = { 336 | isa = PBXTargetDependency; 337 | target = 15693CF118FDD0FB00AAC8BE /* GBFlatButtonExample */; 338 | targetProxy = 15693D1218FDD0FB00AAC8BE /* PBXContainerItemProxy */; 339 | }; 340 | /* End PBXTargetDependency section */ 341 | 342 | /* Begin PBXVariantGroup section */ 343 | 15693CFE18FDD0FB00AAC8BE /* InfoPlist.strings */ = { 344 | isa = PBXVariantGroup; 345 | children = ( 346 | 15693CFF18FDD0FB00AAC8BE /* en */, 347 | ); 348 | name = InfoPlist.strings; 349 | sourceTree = ""; 350 | }; 351 | 15693D1718FDD0FB00AAC8BE /* InfoPlist.strings */ = { 352 | isa = PBXVariantGroup; 353 | children = ( 354 | 15693D1818FDD0FB00AAC8BE /* en */, 355 | ); 356 | name = InfoPlist.strings; 357 | sourceTree = ""; 358 | }; 359 | /* End PBXVariantGroup section */ 360 | 361 | /* Begin XCBuildConfiguration section */ 362 | 15693D1C18FDD0FB00AAC8BE /* Debug */ = { 363 | isa = XCBuildConfiguration; 364 | buildSettings = { 365 | ALWAYS_SEARCH_USER_PATHS = NO; 366 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 367 | CLANG_CXX_LIBRARY = "libc++"; 368 | CLANG_ENABLE_MODULES = YES; 369 | CLANG_ENABLE_OBJC_ARC = YES; 370 | CLANG_WARN_BOOL_CONVERSION = YES; 371 | CLANG_WARN_CONSTANT_CONVERSION = YES; 372 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 373 | CLANG_WARN_EMPTY_BODY = YES; 374 | CLANG_WARN_ENUM_CONVERSION = YES; 375 | CLANG_WARN_INT_CONVERSION = YES; 376 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 377 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 378 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 379 | COPY_PHASE_STRIP = NO; 380 | GCC_C_LANGUAGE_STANDARD = gnu99; 381 | GCC_DYNAMIC_NO_PIC = NO; 382 | GCC_OPTIMIZATION_LEVEL = 0; 383 | GCC_PREPROCESSOR_DEFINITIONS = ( 384 | "DEBUG=1", 385 | "$(inherited)", 386 | ); 387 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 388 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 389 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 390 | GCC_WARN_UNDECLARED_SELECTOR = YES; 391 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 392 | GCC_WARN_UNUSED_FUNCTION = YES; 393 | GCC_WARN_UNUSED_VARIABLE = YES; 394 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 395 | ONLY_ACTIVE_ARCH = YES; 396 | SDKROOT = iphoneos; 397 | }; 398 | name = Debug; 399 | }; 400 | 15693D1D18FDD0FB00AAC8BE /* Release */ = { 401 | isa = XCBuildConfiguration; 402 | buildSettings = { 403 | ALWAYS_SEARCH_USER_PATHS = NO; 404 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 405 | CLANG_CXX_LIBRARY = "libc++"; 406 | CLANG_ENABLE_MODULES = YES; 407 | CLANG_ENABLE_OBJC_ARC = YES; 408 | CLANG_WARN_BOOL_CONVERSION = YES; 409 | CLANG_WARN_CONSTANT_CONVERSION = YES; 410 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 411 | CLANG_WARN_EMPTY_BODY = YES; 412 | CLANG_WARN_ENUM_CONVERSION = YES; 413 | CLANG_WARN_INT_CONVERSION = YES; 414 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 415 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 416 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 417 | COPY_PHASE_STRIP = YES; 418 | ENABLE_NS_ASSERTIONS = NO; 419 | GCC_C_LANGUAGE_STANDARD = gnu99; 420 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 421 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 422 | GCC_WARN_UNDECLARED_SELECTOR = YES; 423 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 424 | GCC_WARN_UNUSED_FUNCTION = YES; 425 | GCC_WARN_UNUSED_VARIABLE = YES; 426 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 427 | SDKROOT = iphoneos; 428 | VALIDATE_PRODUCT = YES; 429 | }; 430 | name = Release; 431 | }; 432 | 15693D1F18FDD0FB00AAC8BE /* Debug */ = { 433 | isa = XCBuildConfiguration; 434 | baseConfigurationReference = 76958FAFBADF44FA8E518B4E /* Pods.xcconfig */; 435 | buildSettings = { 436 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 437 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 438 | CLANG_ENABLE_MODULES = YES; 439 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 440 | GCC_PREFIX_HEADER = "GBFlatButtonExample/GBFlatButtonExample-Prefix.pch"; 441 | INFOPLIST_FILE = "GBFlatButtonExample/GBFlatButtonExample-Info.plist"; 442 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 443 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 444 | PRODUCT_NAME = "$(TARGET_NAME)"; 445 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 446 | WRAPPER_EXTENSION = app; 447 | }; 448 | name = Debug; 449 | }; 450 | 15693D2018FDD0FB00AAC8BE /* Release */ = { 451 | isa = XCBuildConfiguration; 452 | baseConfigurationReference = 76958FAFBADF44FA8E518B4E /* Pods.xcconfig */; 453 | buildSettings = { 454 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 455 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 456 | CLANG_ENABLE_MODULES = YES; 457 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 458 | GCC_PREFIX_HEADER = "GBFlatButtonExample/GBFlatButtonExample-Prefix.pch"; 459 | INFOPLIST_FILE = "GBFlatButtonExample/GBFlatButtonExample-Info.plist"; 460 | IPHONEOS_DEPLOYMENT_TARGET = 6.0; 461 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 462 | PRODUCT_NAME = "$(TARGET_NAME)"; 463 | WRAPPER_EXTENSION = app; 464 | }; 465 | name = Release; 466 | }; 467 | 15693D2218FDD0FB00AAC8BE /* Debug */ = { 468 | isa = XCBuildConfiguration; 469 | buildSettings = { 470 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/GBFlatButtonExample.app/GBFlatButtonExample"; 471 | FRAMEWORK_SEARCH_PATHS = ( 472 | "$(SDKROOT)/Developer/Library/Frameworks", 473 | "$(inherited)", 474 | "$(DEVELOPER_FRAMEWORKS_DIR)", 475 | ); 476 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 477 | GCC_PREFIX_HEADER = "GBFlatButtonExample/GBFlatButtonExample-Prefix.pch"; 478 | GCC_PREPROCESSOR_DEFINITIONS = ( 479 | "DEBUG=1", 480 | "$(inherited)", 481 | ); 482 | INFOPLIST_FILE = "GBFlatButtonExampleTests/GBFlatButtonExampleTests-Info.plist"; 483 | PRODUCT_NAME = "$(TARGET_NAME)"; 484 | TEST_HOST = "$(BUNDLE_LOADER)"; 485 | WRAPPER_EXTENSION = xctest; 486 | }; 487 | name = Debug; 488 | }; 489 | 15693D2318FDD0FB00AAC8BE /* Release */ = { 490 | isa = XCBuildConfiguration; 491 | buildSettings = { 492 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/GBFlatButtonExample.app/GBFlatButtonExample"; 493 | FRAMEWORK_SEARCH_PATHS = ( 494 | "$(SDKROOT)/Developer/Library/Frameworks", 495 | "$(inherited)", 496 | "$(DEVELOPER_FRAMEWORKS_DIR)", 497 | ); 498 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 499 | GCC_PREFIX_HEADER = "GBFlatButtonExample/GBFlatButtonExample-Prefix.pch"; 500 | INFOPLIST_FILE = "GBFlatButtonExampleTests/GBFlatButtonExampleTests-Info.plist"; 501 | PRODUCT_NAME = "$(TARGET_NAME)"; 502 | TEST_HOST = "$(BUNDLE_LOADER)"; 503 | WRAPPER_EXTENSION = xctest; 504 | }; 505 | name = Release; 506 | }; 507 | /* End XCBuildConfiguration section */ 508 | 509 | /* Begin XCConfigurationList section */ 510 | 15693CED18FDD0FB00AAC8BE /* Build configuration list for PBXProject "GBFlatButtonExample" */ = { 511 | isa = XCConfigurationList; 512 | buildConfigurations = ( 513 | 15693D1C18FDD0FB00AAC8BE /* Debug */, 514 | 15693D1D18FDD0FB00AAC8BE /* Release */, 515 | ); 516 | defaultConfigurationIsVisible = 0; 517 | defaultConfigurationName = Release; 518 | }; 519 | 15693D1E18FDD0FB00AAC8BE /* Build configuration list for PBXNativeTarget "GBFlatButtonExample" */ = { 520 | isa = XCConfigurationList; 521 | buildConfigurations = ( 522 | 15693D1F18FDD0FB00AAC8BE /* Debug */, 523 | 15693D2018FDD0FB00AAC8BE /* Release */, 524 | ); 525 | defaultConfigurationIsVisible = 0; 526 | defaultConfigurationName = Release; 527 | }; 528 | 15693D2118FDD0FB00AAC8BE /* Build configuration list for PBXNativeTarget "GBFlatButtonExampleTests" */ = { 529 | isa = XCConfigurationList; 530 | buildConfigurations = ( 531 | 15693D2218FDD0FB00AAC8BE /* Debug */, 532 | 15693D2318FDD0FB00AAC8BE /* Release */, 533 | ); 534 | defaultConfigurationIsVisible = 0; 535 | defaultConfigurationName = Release; 536 | }; 537 | /* End XCConfigurationList section */ 538 | }; 539 | rootObject = 15693CEA18FDD0FB00AAC8BE /* Project object */; 540 | } 541 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // GBFlatButtonExample 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // GBFlatButtonExample 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | #import "ViewController.h" 12 | 13 | @implementation AppDelegate 14 | 15 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 16 | { 17 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 18 | // Override point for customization after application launch. 19 | self.window.backgroundColor = [UIColor whiteColor]; 20 | [self.window makeKeyAndVisible]; 21 | 22 | self.window.rootViewController = [[ViewController alloc] init]; 23 | 24 | return YES; 25 | } 26 | 27 | - (void)applicationWillResignActive:(UIApplication *)application 28 | { 29 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 30 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 31 | } 32 | 33 | - (void)applicationDidEnterBackground:(UIApplication *)application 34 | { 35 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 36 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 37 | } 38 | 39 | - (void)applicationWillEnterForeground:(UIApplication *)application 40 | { 41 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 42 | } 43 | 44 | - (void)applicationDidBecomeActive:(UIApplication *)application 45 | { 46 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 47 | } 48 | 49 | - (void)applicationWillTerminate:(UIApplication *)application 50 | { 51 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/GBFlatButtonExample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.7pixels.${PRODUCT_NAME:rfc1034identifier} 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 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/GBFlatButtonExample-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_3_0 10 | #warning "This project uses features only available in iOS SDK 3.0 and later." 11 | #endif 12 | 13 | #ifdef __OBJC__ 14 | #import 15 | #import 16 | #endif 17 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // GBFlatButtonExample 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ViewController : UIViewController 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // GBFlatButtonExample 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | #import "GBFlatButton.h" 11 | #import "UIColor+GBFlatButton.h" 12 | 13 | @interface ViewController () 14 | 15 | @property (nonatomic, weak) IBOutlet GBFlatButton *pinkButton; 16 | @property (nonatomic, weak) IBOutlet GBFlatButton *yellowButton; 17 | @property (nonatomic, weak) IBOutlet GBFlatButton *orangeButton; 18 | @property (nonatomic, weak) IBOutlet GBFlatButton *greenButton; 19 | @property (nonatomic, weak) IBOutlet GBFlatButton *blueButton; 20 | @property (nonatomic, weak) IBOutlet GBFlatButton *purpleButton; 21 | 22 | @property (nonatomic, weak) IBOutlet GBFlatButton *pinkSelectedButton; 23 | @property (nonatomic, weak) IBOutlet GBFlatButton *yellowSelectedButton; 24 | @property (nonatomic, weak) IBOutlet GBFlatButton *orangeSelectedButton; 25 | @property (nonatomic, weak) IBOutlet GBFlatButton *greenSelectedButton; 26 | @property (nonatomic, weak) IBOutlet GBFlatButton *blueSelectedButton; 27 | @property (nonatomic, weak) IBOutlet GBFlatButton *purpleSelectedButton; 28 | 29 | @end 30 | 31 | @implementation ViewController 32 | 33 | - (void)viewDidLoad 34 | { 35 | [super viewDidLoad]; 36 | 37 | // Uncomment the following lines to add a programatically-created button 38 | // GBFlatSelectableButton *blackButton = [[GBFlatSelectableButton alloc] initWithFrame:CGRectMake(0, 30, 150, 44)]; 39 | // blackButton.tintColor = [UIColor blackColor]; 40 | // [blackButton setTitle:@"Black" 41 | // forState:UIControlStateNormal]; 42 | // blackButton.center = CGPointMake(self.view.center.x, blackButton.center.y); 43 | // [self.view addSubview:blackButton]; 44 | 45 | _pinkSelectedButton.selected = YES; 46 | _yellowSelectedButton.selected = YES; 47 | _orangeSelectedButton.selected = YES; 48 | _greenSelectedButton.selected = YES; 49 | _blueSelectedButton.selected = YES; 50 | _purpleSelectedButton.selected = YES; 51 | } 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/ViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 34 | 39 | 44 | 49 | 54 | 59 | 67 | 75 | 83 | 91 | 99 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // GBFlatButtonExample 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "AppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExampleTests/GBFlatButtonExampleTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.7pixels.${PRODUCT_NAME:rfc1034identifier} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExampleTests/GBFlatButtonExampleTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // GBFlatButtonExampleTests.m 3 | // GBFlatButtonExampleTests 4 | // 5 | // Created by Gustavo Barbosa on 4/15/14. 6 | // Copyright (c) 2014 Gustavo Barbosa. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface GBFlatButtonExampleTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation GBFlatButtonExampleTests 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 | - (void)testExample 30 | { 31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Example/GBFlatButtonExampleTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | pod "GBFlatButton", :path => "../" 2 | 3 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - GBFlatButton (2.0.1) 3 | 4 | DEPENDENCIES: 5 | - GBFlatButton (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | GBFlatButton: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | GBFlatButton: 86043ed1601128c58094531a0840764c1c526ad3 13 | 14 | COCOAPODS: 0.33.1 15 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/GBFlatButton.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "GBFlatButton" 3 | s.version = "2.0.1" 4 | s.summary = "A flat and light implementation of UIButton for iOS." 5 | s.homepage = "https://github.com/barbosa/GBFlatButton" 6 | s.screenshots = "https://raw.githubusercontent.com/barbosa/GBFlatButton/master/screenshot.png" 7 | s.license = 'MIT' 8 | s.author = "Gustavo Barbosa" 9 | s.social_media_url = 'https://twitter.com/gustavocsb' 10 | s.source = { :git => "https://github.com/barbosa/GBFlatButton.git", :tag => s.version.to_s } 11 | 12 | s.platform = :ios, '5.0' 13 | s.requires_arc = true 14 | 15 | s.source_files = 'Classes' 16 | 17 | s.frameworks = 'QuartzCore' 18 | end 19 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - GBFlatButton (2.0.1) 3 | 4 | DEPENDENCIES: 5 | - GBFlatButton (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | GBFlatButton: 9 | :path: ../ 10 | 11 | SPEC CHECKSUMS: 12 | GBFlatButton: 86043ed1601128c58094531a0840764c1c526ad3 13 | 14 | COCOAPODS: 0.33.1 15 | -------------------------------------------------------------------------------- /Example/Pods/Pods-GBFlatButton-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Pods-GBFlatButton.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/BuildHeaders" "${PODS_ROOT}/BuildHeaders/GBFlatButton" "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/GBFlatButton" 4 | OTHER_LDFLAGS = -ObjC ${PODS_GBFLATBUTTON_OTHER_LDFLAGS} 5 | PODS_ROOT = ${SRCROOT} -------------------------------------------------------------------------------- /Example/Pods/Pods-GBFlatButton-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_GBFlatButton : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_GBFlatButton 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Pods-GBFlatButton-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | #import "Pods-environment.h" 6 | -------------------------------------------------------------------------------- /Example/Pods/Pods-GBFlatButton.xcconfig: -------------------------------------------------------------------------------- 1 | PODS_GBFLATBUTTON_OTHER_LDFLAGS = -framework QuartzCore -------------------------------------------------------------------------------- /Example/Pods/Pods-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## GBFlatButton 5 | 6 | Copyright (c) 2014 Gustavo Barbosa 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - http://cocoapods.org 27 | -------------------------------------------------------------------------------- /Example/Pods/Pods-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 | Copyright (c) 2014 Gustavo Barbosa <gustavocsb@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | Title 38 | GBFlatButton 39 | Type 40 | PSGroupSpecifier 41 | 42 | 43 | FooterText 44 | Generated by CocoaPods - http://cocoapods.org 45 | Title 46 | 47 | Type 48 | PSGroupSpecifier 49 | 50 | 51 | StringsTable 52 | Acknowledgements 53 | Title 54 | Acknowledgements 55 | 56 | 57 | -------------------------------------------------------------------------------- /Example/Pods/Pods-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods : NSObject 3 | @end 4 | @implementation PodsDummy_Pods 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Pods-environment.h: -------------------------------------------------------------------------------- 1 | 2 | // To check if a library is compiled with CocoaPods you 3 | // can use the `COCOAPODS` macro definition which is 4 | // defined in the xcconfigs so it is available in 5 | // headers also when they are imported in the client 6 | // project. 7 | 8 | 9 | // GBFlatButton 10 | #define COCOAPODS_POD_AVAILABLE_GBFlatButton 11 | #define COCOAPODS_VERSION_MAJOR_GBFlatButton 2 12 | #define COCOAPODS_VERSION_MINOR_GBFlatButton 0 13 | #define COCOAPODS_VERSION_PATCH_GBFlatButton 1 14 | 15 | -------------------------------------------------------------------------------- /Example/Pods/Pods-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 5 | > "$RESOURCES_TO_COPY" 6 | 7 | install_resource() 8 | { 9 | case $1 in 10 | *.storyboard) 11 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 12 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 13 | ;; 14 | *.xib) 15 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" 16 | ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" 17 | ;; 18 | *.framework) 19 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 20 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 21 | echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 22 | rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 23 | ;; 24 | *.xcdatamodel) 25 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" 26 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" 27 | ;; 28 | *.xcdatamodeld) 29 | echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" 30 | xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" 31 | ;; 32 | *.xcassets) 33 | ;; 34 | /*) 35 | echo "$1" 36 | echo "$1" >> "$RESOURCES_TO_COPY" 37 | ;; 38 | *) 39 | echo "${PODS_ROOT}/$1" 40 | echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" 41 | ;; 42 | esac 43 | } 44 | 45 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 46 | if [[ "${ACTION}" == "install" ]]; then 47 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 48 | fi 49 | rm -f "$RESOURCES_TO_COPY" 50 | 51 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ `xcrun --find actool` ] && [ `find . -name '*.xcassets' | wc -l` -ne 0 ] 52 | then 53 | case "${TARGETED_DEVICE_FAMILY}" in 54 | 1,2) 55 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 56 | ;; 57 | 1) 58 | TARGET_DEVICE_ARGS="--target-device iphone" 59 | ;; 60 | 2) 61 | TARGET_DEVICE_ARGS="--target-device ipad" 62 | ;; 63 | *) 64 | TARGET_DEVICE_ARGS="--target-device mac" 65 | ;; 66 | esac 67 | find "${PWD}" -name "*.xcassets" -print0 | xargs -0 actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 68 | fi 69 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcconfig: -------------------------------------------------------------------------------- 1 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 2 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/GBFlatButton" 3 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers" -isystem "${PODS_ROOT}/Headers/GBFlatButton" 4 | OTHER_LDFLAGS = -ObjC -framework QuartzCore 5 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | archiveVersion 6 | 1 7 | classes 8 | 9 | objectVersion 10 | 46 11 | objects 12 | 13 | 094A14A58A234B89857BE02D 14 | 15 | fileRef 16 | 2CFD24F68D984EA09F34E0E1 17 | isa 18 | PBXBuildFile 19 | 20 | 0C564FD44FAF4160BD32B4C7 21 | 22 | buildConfigurationList 23 | EBF971C413514AFDB3B1033C 24 | buildPhases 25 | 26 | E5E6E57D7C0D493086757502 27 | D8258E0D53EB418285CE22C8 28 | 29 | buildRules 30 | 31 | dependencies 32 | 33 | 607B8568DBD840688172E156 34 | 35 | isa 36 | PBXNativeTarget 37 | name 38 | Pods 39 | productName 40 | Pods 41 | productReference 42 | 7464A51DF5A145A093F53A10 43 | productType 44 | com.apple.product-type.library.static 45 | 46 | 0ED8783E0826484EB0573061 47 | 48 | children 49 | 50 | B9F3EB4DC9834BE8BC342AB0 51 | 52 | isa 53 | PBXGroup 54 | name 55 | Development Pods 56 | sourceTree 57 | <group> 58 | 59 | 15F0DAB0BADA48339DF44BDC 60 | 61 | includeInIndex 62 | 1 63 | isa 64 | PBXFileReference 65 | lastKnownFileType 66 | sourcecode.c.h 67 | path 68 | Pods-environment.h 69 | sourceTree 70 | <group> 71 | 72 | 165108318CF6487F8946F28D 73 | 74 | containerPortal 75 | 4FB41DC5A8634230B7C669F4 76 | isa 77 | PBXContainerItemProxy 78 | proxyType 79 | 1 80 | remoteGlobalIDString 81 | 521295F8DAE5416CAB059ED3 82 | remoteInfo 83 | Pods-GBFlatButton 84 | 85 | 278085BC6837440892CA61AA 86 | 87 | buildConfigurations 88 | 89 | 5EF7349B1D9E4539896D735F 90 | 3920ACB5AB604270AF1DEAB9 91 | 92 | defaultConfigurationIsVisible 93 | 0 94 | defaultConfigurationName 95 | Release 96 | isa 97 | XCConfigurationList 98 | 99 | 2CFD24F68D984EA09F34E0E1 100 | 101 | includeInIndex 102 | 1 103 | isa 104 | PBXFileReference 105 | lastKnownFileType 106 | sourcecode.c.objc 107 | path 108 | Pods-dummy.m 109 | sourceTree 110 | <group> 111 | 112 | 30669DBA7850476BA031BA99 113 | 114 | explicitFileType 115 | archive.ar 116 | includeInIndex 117 | 0 118 | isa 119 | PBXFileReference 120 | path 121 | libPods-GBFlatButton.a 122 | sourceTree 123 | BUILT_PRODUCTS_DIR 124 | 125 | 390D81958D13458AA1A9D66D 126 | 127 | fileRef 128 | 30669DBA7850476BA031BA99 129 | isa 130 | PBXBuildFile 131 | 132 | 3920ACB5AB604270AF1DEAB9 133 | 134 | baseConfigurationReference 135 | F771FF4B6CE44748BDE2E8E8 136 | buildSettings 137 | 138 | ALWAYS_SEARCH_USER_PATHS 139 | NO 140 | COPY_PHASE_STRIP 141 | YES 142 | DSTROOT 143 | /tmp/xcodeproj.dst 144 | GCC_C_LANGUAGE_STANDARD 145 | gnu99 146 | GCC_PRECOMPILE_PREFIX_HEADER 147 | YES 148 | GCC_PREFIX_HEADER 149 | Pods-GBFlatButton-prefix.pch 150 | GCC_VERSION 151 | com.apple.compilers.llvm.clang.1_0 152 | INSTALL_PATH 153 | $(BUILT_PRODUCTS_DIR) 154 | IPHONEOS_DEPLOYMENT_TARGET 155 | 6.0 156 | OTHER_CFLAGS 157 | 158 | -DNS_BLOCK_ASSERTIONS=1 159 | $(inherited) 160 | 161 | OTHER_CPLUSPLUSFLAGS 162 | 163 | -DNS_BLOCK_ASSERTIONS=1 164 | $(inherited) 165 | 166 | OTHER_LDFLAGS 167 | 168 | PRODUCT_NAME 169 | $(TARGET_NAME) 170 | PUBLIC_HEADERS_FOLDER_PATH 171 | $(TARGET_NAME) 172 | SDKROOT 173 | iphoneos 174 | SKIP_INSTALL 175 | YES 176 | VALIDATE_PRODUCT 177 | YES 178 | 179 | isa 180 | XCBuildConfiguration 181 | name 182 | Release 183 | 184 | 3F0120927B9947A08DB77945 185 | 186 | children 187 | 188 | F02240696AC5456A99152A5A 189 | 190 | isa 191 | PBXGroup 192 | name 193 | Targets Support Files 194 | sourceTree 195 | <group> 196 | 197 | 421DBD13060E473082C0831E 198 | 199 | children 200 | 201 | C3DFBA7E9F744FA2B17865CF 202 | 0ED8783E0826484EB0573061 203 | 49E2B3D7B9FF4932BF412412 204 | AEFFFBF892CC4FAC824C0B72 205 | 3F0120927B9947A08DB77945 206 | 207 | isa 208 | PBXGroup 209 | sourceTree 210 | <group> 211 | 212 | 49E2B3D7B9FF4932BF412412 213 | 214 | children 215 | 216 | 76493866458945CBB8CD8A88 217 | 218 | isa 219 | PBXGroup 220 | name 221 | Frameworks 222 | sourceTree 223 | <group> 224 | 225 | 4B5E3D4AA2BD482291C76868 226 | 227 | buildActionMask 228 | 2147483647 229 | files 230 | 231 | F4478B1943914618AAFE4394 232 | 233 | isa 234 | PBXSourcesBuildPhase 235 | runOnlyForDeploymentPostprocessing 236 | 0 237 | 238 | 4BBDA92F29C8426A98F5157C 239 | 240 | buildSettings 241 | 242 | ALWAYS_SEARCH_USER_PATHS 243 | NO 244 | CLANG_CXX_LANGUAGE_STANDARD 245 | gnu++0x 246 | CLANG_CXX_LIBRARY 247 | libc++ 248 | CLANG_ENABLE_MODULES 249 | YES 250 | CLANG_ENABLE_OBJC_ARC 251 | NO 252 | CLANG_WARN_BOOL_CONVERSION 253 | YES 254 | CLANG_WARN_CONSTANT_CONVERSION 255 | YES 256 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE 257 | YES 258 | CLANG_WARN_EMPTY_BODY 259 | YES 260 | CLANG_WARN_ENUM_CONVERSION 261 | YES 262 | CLANG_WARN_INT_CONVERSION 263 | YES 264 | CLANG_WARN_OBJC_ROOT_CLASS 265 | YES 266 | COPY_PHASE_STRIP 267 | YES 268 | GCC_C_LANGUAGE_STANDARD 269 | gnu99 270 | GCC_DYNAMIC_NO_PIC 271 | NO 272 | GCC_OPTIMIZATION_LEVEL 273 | 0 274 | GCC_PREPROCESSOR_DEFINITIONS 275 | 276 | DEBUG=1 277 | $(inherited) 278 | 279 | GCC_SYMBOLS_PRIVATE_EXTERN 280 | NO 281 | GCC_WARN_64_TO_32_BIT_CONVERSION 282 | YES 283 | GCC_WARN_ABOUT_RETURN_TYPE 284 | YES 285 | GCC_WARN_UNDECLARED_SELECTOR 286 | YES 287 | GCC_WARN_UNINITIALIZED_AUTOS 288 | YES 289 | GCC_WARN_UNUSED_FUNCTION 290 | YES 291 | GCC_WARN_UNUSED_VARIABLE 292 | YES 293 | IPHONEOS_DEPLOYMENT_TARGET 294 | 6.0 295 | ONLY_ACTIVE_ARCH 296 | YES 297 | STRIP_INSTALLED_PRODUCT 298 | NO 299 | 300 | isa 301 | XCBuildConfiguration 302 | name 303 | Debug 304 | 305 | 4F1E21B71E864DF49F05CDBC 306 | 307 | includeInIndex 308 | 1 309 | isa 310 | PBXFileReference 311 | lastKnownFileType 312 | text.xcconfig 313 | path 314 | Pods-GBFlatButton.xcconfig 315 | sourceTree 316 | <group> 317 | 318 | 4FB41DC5A8634230B7C669F4 319 | 320 | attributes 321 | 322 | LastUpgradeCheck 323 | 0510 324 | 325 | buildConfigurationList 326 | A7C5983F14FE4A87B780F507 327 | compatibilityVersion 328 | Xcode 3.2 329 | developmentRegion 330 | English 331 | hasScannedForEncodings 332 | 0 333 | isa 334 | PBXProject 335 | knownRegions 336 | 337 | en 338 | 339 | mainGroup 340 | 421DBD13060E473082C0831E 341 | productRefGroup 342 | AEFFFBF892CC4FAC824C0B72 343 | projectDirPath 344 | 345 | projectReferences 346 | 347 | projectRoot 348 | 349 | targets 350 | 351 | 0C564FD44FAF4160BD32B4C7 352 | 521295F8DAE5416CAB059ED3 353 | 354 | 355 | 521295F8DAE5416CAB059ED3 356 | 357 | buildConfigurationList 358 | 278085BC6837440892CA61AA 359 | buildPhases 360 | 361 | 4B5E3D4AA2BD482291C76868 362 | C37868E45FD748A7AEA7A48F 363 | 364 | buildRules 365 | 366 | dependencies 367 | 368 | isa 369 | PBXNativeTarget 370 | name 371 | Pods-GBFlatButton 372 | productName 373 | Pods-GBFlatButton 374 | productReference 375 | 30669DBA7850476BA031BA99 376 | productType 377 | com.apple.product-type.library.static 378 | 379 | 5EF7349B1D9E4539896D735F 380 | 381 | baseConfigurationReference 382 | F771FF4B6CE44748BDE2E8E8 383 | buildSettings 384 | 385 | ALWAYS_SEARCH_USER_PATHS 386 | NO 387 | COPY_PHASE_STRIP 388 | NO 389 | DSTROOT 390 | /tmp/xcodeproj.dst 391 | GCC_C_LANGUAGE_STANDARD 392 | gnu99 393 | GCC_DYNAMIC_NO_PIC 394 | NO 395 | GCC_OPTIMIZATION_LEVEL 396 | 0 397 | GCC_PRECOMPILE_PREFIX_HEADER 398 | YES 399 | GCC_PREFIX_HEADER 400 | Pods-GBFlatButton-prefix.pch 401 | GCC_PREPROCESSOR_DEFINITIONS 402 | 403 | DEBUG=1 404 | $(inherited) 405 | 406 | GCC_SYMBOLS_PRIVATE_EXTERN 407 | NO 408 | GCC_VERSION 409 | com.apple.compilers.llvm.clang.1_0 410 | INSTALL_PATH 411 | $(BUILT_PRODUCTS_DIR) 412 | IPHONEOS_DEPLOYMENT_TARGET 413 | 6.0 414 | OTHER_LDFLAGS 415 | 416 | PRODUCT_NAME 417 | $(TARGET_NAME) 418 | PUBLIC_HEADERS_FOLDER_PATH 419 | $(TARGET_NAME) 420 | SDKROOT 421 | iphoneos 422 | SKIP_INSTALL 423 | YES 424 | 425 | isa 426 | XCBuildConfiguration 427 | name 428 | Debug 429 | 430 | 607B8568DBD840688172E156 431 | 432 | isa 433 | PBXTargetDependency 434 | target 435 | 521295F8DAE5416CAB059ED3 436 | targetProxy 437 | 165108318CF6487F8946F28D 438 | 439 | 654BB0539BFE459F932B117F 440 | 441 | isa 442 | PBXFileReference 443 | lastKnownFileType 444 | wrapper.framework 445 | name 446 | Foundation.framework 447 | path 448 | Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework 449 | sourceTree 450 | DEVELOPER_DIR 451 | 452 | 6B41EAE865F74698B1178D68 453 | 454 | buildSettings 455 | 456 | ALWAYS_SEARCH_USER_PATHS 457 | NO 458 | CLANG_CXX_LANGUAGE_STANDARD 459 | gnu++0x 460 | CLANG_CXX_LIBRARY 461 | libc++ 462 | CLANG_ENABLE_MODULES 463 | YES 464 | CLANG_ENABLE_OBJC_ARC 465 | NO 466 | CLANG_WARN_BOOL_CONVERSION 467 | YES 468 | CLANG_WARN_CONSTANT_CONVERSION 469 | YES 470 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE 471 | YES 472 | CLANG_WARN_EMPTY_BODY 473 | YES 474 | CLANG_WARN_ENUM_CONVERSION 475 | YES 476 | CLANG_WARN_INT_CONVERSION 477 | YES 478 | CLANG_WARN_OBJC_ROOT_CLASS 479 | YES 480 | COPY_PHASE_STRIP 481 | NO 482 | ENABLE_NS_ASSERTIONS 483 | NO 484 | GCC_C_LANGUAGE_STANDARD 485 | gnu99 486 | GCC_WARN_64_TO_32_BIT_CONVERSION 487 | YES 488 | GCC_WARN_ABOUT_RETURN_TYPE 489 | YES 490 | GCC_WARN_UNDECLARED_SELECTOR 491 | YES 492 | GCC_WARN_UNINITIALIZED_AUTOS 493 | YES 494 | GCC_WARN_UNUSED_FUNCTION 495 | YES 496 | GCC_WARN_UNUSED_VARIABLE 497 | YES 498 | IPHONEOS_DEPLOYMENT_TARGET 499 | 6.0 500 | STRIP_INSTALLED_PRODUCT 501 | NO 502 | VALIDATE_PRODUCT 503 | YES 504 | 505 | isa 506 | XCBuildConfiguration 507 | name 508 | Release 509 | 510 | 6C9047101BA84B58B0373474 511 | 512 | includeInIndex 513 | 1 514 | isa 515 | PBXFileReference 516 | lastKnownFileType 517 | text.xcconfig 518 | path 519 | Pods.xcconfig 520 | sourceTree 521 | <group> 522 | 523 | 7464A51DF5A145A093F53A10 524 | 525 | explicitFileType 526 | archive.ar 527 | includeInIndex 528 | 0 529 | isa 530 | PBXFileReference 531 | path 532 | libPods.a 533 | sourceTree 534 | BUILT_PRODUCTS_DIR 535 | 536 | 76493866458945CBB8CD8A88 537 | 538 | children 539 | 540 | 654BB0539BFE459F932B117F 541 | B543268590E14F7AA36C466D 542 | 543 | isa 544 | PBXGroup 545 | name 546 | iOS 547 | sourceTree 548 | <group> 549 | 550 | 9404265CC06A48C0B44FB861 551 | 552 | includeInIndex 553 | 1 554 | isa 555 | PBXFileReference 556 | lastKnownFileType 557 | sourcecode.c.h 558 | path 559 | Pods-GBFlatButton-prefix.pch 560 | sourceTree 561 | <group> 562 | 563 | 9870EF75500F4AC28E419617 564 | 565 | includeInIndex 566 | 1 567 | isa 568 | PBXFileReference 569 | lastKnownFileType 570 | text.plist.xml 571 | path 572 | Pods-acknowledgements.plist 573 | sourceTree 574 | <group> 575 | 576 | A6FF94A10C75420E9F4F5E64 577 | 578 | fileRef 579 | B543268590E14F7AA36C466D 580 | isa 581 | PBXBuildFile 582 | 583 | A7C5983F14FE4A87B780F507 584 | 585 | buildConfigurations 586 | 587 | 4BBDA92F29C8426A98F5157C 588 | 6B41EAE865F74698B1178D68 589 | 590 | defaultConfigurationIsVisible 591 | 0 592 | defaultConfigurationName 593 | Release 594 | isa 595 | XCConfigurationList 596 | 597 | AEFFFBF892CC4FAC824C0B72 598 | 599 | children 600 | 601 | 7464A51DF5A145A093F53A10 602 | 30669DBA7850476BA031BA99 603 | 604 | isa 605 | PBXGroup 606 | name 607 | Products 608 | sourceTree 609 | <group> 610 | 611 | B11277A7F04441B0AD236849 612 | 613 | includeInIndex 614 | 1 615 | isa 616 | PBXFileReference 617 | lastKnownFileType 618 | text 619 | path 620 | Pods-acknowledgements.markdown 621 | sourceTree 622 | <group> 623 | 624 | B1BE291A84A64F838C1B3A37 625 | 626 | includeInIndex 627 | 1 628 | isa 629 | PBXFileReference 630 | lastKnownFileType 631 | text.script.sh 632 | path 633 | Pods-resources.sh 634 | sourceTree 635 | <group> 636 | 637 | B543268590E14F7AA36C466D 638 | 639 | isa 640 | PBXFileReference 641 | lastKnownFileType 642 | wrapper.framework 643 | name 644 | QuartzCore.framework 645 | path 646 | Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/QuartzCore.framework 647 | sourceTree 648 | DEVELOPER_DIR 649 | 650 | B7BF58DE4C93476E938EDC4F 651 | 652 | fileRef 653 | 654BB0539BFE459F932B117F 654 | isa 655 | PBXBuildFile 656 | 657 | B9F3EB4DC9834BE8BC342AB0 658 | 659 | children 660 | 661 | DFA3F87D16AC41C3B5A8E520 662 | 663 | isa 664 | PBXGroup 665 | name 666 | GBFlatButton 667 | path 668 | ../.. 669 | sourceTree 670 | <group> 671 | 672 | C37868E45FD748A7AEA7A48F 673 | 674 | buildActionMask 675 | 2147483647 676 | files 677 | 678 | E701F631139C4E189F718476 679 | A6FF94A10C75420E9F4F5E64 680 | 681 | isa 682 | PBXFrameworksBuildPhase 683 | runOnlyForDeploymentPostprocessing 684 | 0 685 | 686 | C3DFBA7E9F744FA2B17865CF 687 | 688 | includeInIndex 689 | 1 690 | isa 691 | PBXFileReference 692 | lastKnownFileType 693 | text 694 | name 695 | Podfile 696 | path 697 | ../Podfile 698 | sourceTree 699 | SOURCE_ROOT 700 | xcLanguageSpecificationIdentifier 701 | xcode.lang.ruby 702 | 703 | D8258E0D53EB418285CE22C8 704 | 705 | buildActionMask 706 | 2147483647 707 | files 708 | 709 | B7BF58DE4C93476E938EDC4F 710 | 390D81958D13458AA1A9D66D 711 | 712 | isa 713 | PBXFrameworksBuildPhase 714 | runOnlyForDeploymentPostprocessing 715 | 0 716 | 717 | DFA3F87D16AC41C3B5A8E520 718 | 719 | children 720 | 721 | 4F1E21B71E864DF49F05CDBC 722 | F771FF4B6CE44748BDE2E8E8 723 | FDA53F0F7515439C94D53DAD 724 | 9404265CC06A48C0B44FB861 725 | 726 | isa 727 | PBXGroup 728 | name 729 | Support Files 730 | sourceTree 731 | SOURCE_ROOT 732 | 733 | E359E9888874484DA3041A9C 734 | 735 | baseConfigurationReference 736 | 6C9047101BA84B58B0373474 737 | buildSettings 738 | 739 | ALWAYS_SEARCH_USER_PATHS 740 | NO 741 | COPY_PHASE_STRIP 742 | YES 743 | DSTROOT 744 | /tmp/xcodeproj.dst 745 | GCC_C_LANGUAGE_STANDARD 746 | gnu99 747 | GCC_PRECOMPILE_PREFIX_HEADER 748 | YES 749 | GCC_VERSION 750 | com.apple.compilers.llvm.clang.1_0 751 | INSTALL_PATH 752 | $(BUILT_PRODUCTS_DIR) 753 | IPHONEOS_DEPLOYMENT_TARGET 754 | 6.0 755 | OTHER_CFLAGS 756 | 757 | -DNS_BLOCK_ASSERTIONS=1 758 | $(inherited) 759 | 760 | OTHER_CPLUSPLUSFLAGS 761 | 762 | -DNS_BLOCK_ASSERTIONS=1 763 | $(inherited) 764 | 765 | OTHER_LDFLAGS 766 | 767 | PRODUCT_NAME 768 | $(TARGET_NAME) 769 | PUBLIC_HEADERS_FOLDER_PATH 770 | $(TARGET_NAME) 771 | SDKROOT 772 | iphoneos 773 | SKIP_INSTALL 774 | YES 775 | VALIDATE_PRODUCT 776 | YES 777 | 778 | isa 779 | XCBuildConfiguration 780 | name 781 | Release 782 | 783 | E5E6E57D7C0D493086757502 784 | 785 | buildActionMask 786 | 2147483647 787 | files 788 | 789 | 094A14A58A234B89857BE02D 790 | 791 | isa 792 | PBXSourcesBuildPhase 793 | runOnlyForDeploymentPostprocessing 794 | 0 795 | 796 | E701F631139C4E189F718476 797 | 798 | fileRef 799 | 654BB0539BFE459F932B117F 800 | isa 801 | PBXBuildFile 802 | 803 | E9A96BC016204DDAAE83AA4B 804 | 805 | baseConfigurationReference 806 | 6C9047101BA84B58B0373474 807 | buildSettings 808 | 809 | ALWAYS_SEARCH_USER_PATHS 810 | NO 811 | COPY_PHASE_STRIP 812 | NO 813 | DSTROOT 814 | /tmp/xcodeproj.dst 815 | GCC_C_LANGUAGE_STANDARD 816 | gnu99 817 | GCC_DYNAMIC_NO_PIC 818 | NO 819 | GCC_OPTIMIZATION_LEVEL 820 | 0 821 | GCC_PRECOMPILE_PREFIX_HEADER 822 | YES 823 | GCC_PREPROCESSOR_DEFINITIONS 824 | 825 | DEBUG=1 826 | $(inherited) 827 | 828 | GCC_SYMBOLS_PRIVATE_EXTERN 829 | NO 830 | GCC_VERSION 831 | com.apple.compilers.llvm.clang.1_0 832 | INSTALL_PATH 833 | $(BUILT_PRODUCTS_DIR) 834 | IPHONEOS_DEPLOYMENT_TARGET 835 | 6.0 836 | OTHER_LDFLAGS 837 | 838 | PRODUCT_NAME 839 | $(TARGET_NAME) 840 | PUBLIC_HEADERS_FOLDER_PATH 841 | $(TARGET_NAME) 842 | SDKROOT 843 | iphoneos 844 | SKIP_INSTALL 845 | YES 846 | 847 | isa 848 | XCBuildConfiguration 849 | name 850 | Debug 851 | 852 | EBF971C413514AFDB3B1033C 853 | 854 | buildConfigurations 855 | 856 | E9A96BC016204DDAAE83AA4B 857 | E359E9888874484DA3041A9C 858 | 859 | defaultConfigurationIsVisible 860 | 0 861 | defaultConfigurationName 862 | Release 863 | isa 864 | XCConfigurationList 865 | 866 | F02240696AC5456A99152A5A 867 | 868 | children 869 | 870 | 6C9047101BA84B58B0373474 871 | B11277A7F04441B0AD236849 872 | 9870EF75500F4AC28E419617 873 | 2CFD24F68D984EA09F34E0E1 874 | 15F0DAB0BADA48339DF44BDC 875 | B1BE291A84A64F838C1B3A37 876 | 877 | isa 878 | PBXGroup 879 | name 880 | Pods 881 | sourceTree 882 | <group> 883 | 884 | F4478B1943914618AAFE4394 885 | 886 | fileRef 887 | FDA53F0F7515439C94D53DAD 888 | isa 889 | PBXBuildFile 890 | 891 | F771FF4B6CE44748BDE2E8E8 892 | 893 | includeInIndex 894 | 1 895 | isa 896 | PBXFileReference 897 | lastKnownFileType 898 | text.xcconfig 899 | path 900 | Pods-GBFlatButton-Private.xcconfig 901 | sourceTree 902 | <group> 903 | 904 | FDA53F0F7515439C94D53DAD 905 | 906 | includeInIndex 907 | 1 908 | isa 909 | PBXFileReference 910 | lastKnownFileType 911 | sourcecode.c.objc 912 | path 913 | Pods-GBFlatButton-dummy.m 914 | sourceTree 915 | <group> 916 | 917 | 918 | rootObject 919 | 4FB41DC5A8634230B7C669F4 920 | 921 | 922 | -------------------------------------------------------------------------------- /GBFlatButton.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "GBFlatButton" 3 | s.version = "2.1.0" 4 | s.summary = "A flat and light implementation of UIButton for iOS." 5 | s.homepage = "https://github.com/barbosa/GBFlatButton" 6 | s.screenshots = "https://raw.githubusercontent.com/barbosa/GBFlatButton/master/screenshot.png" 7 | s.license = 'MIT' 8 | s.author = "Gustavo Barbosa" 9 | s.social_media_url = 'https://twitter.com/gustavocsb' 10 | s.source = { :git => "https://github.com/barbosa/GBFlatButton.git", :tag => s.version.to_s } 11 | 12 | s.platform = :ios, '5.0' 13 | s.requires_arc = true 14 | 15 | s.source_files = 'Classes/objc' 16 | 17 | s.frameworks = 'QuartzCore' 18 | end 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Gustavo Barbosa 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [DEPRECATED] GBFlatButton 2 | 3 | [![Version](https://img.shields.io/cocoapods/v/GBFlatButton.svg?style=flat)](http://cocoadocs.org/docsets/GBFlatButton) 4 | [![License](https://img.shields.io/cocoapods/l/GBFlatButton.svg?style=flat)](http://cocoadocs.org/docsets/GBFlatButton) 5 | [![Platform](https://img.shields.io/cocoapods/p/GBFlatButton.svg?style=flat)](http://cocoadocs.org/docsets/GBFlatButton) 6 | 7 | ## Installation 8 | 9 | GBFlatButton is available through [CocoaPods](http://cocoapods.org), to install 10 | it simply add the following line to your Podfile: 11 | 12 | ```ruby 13 | pod "GBFlatButton" 14 | ``` 15 | 16 | But if you don't use CocoaPods, you can just copy the `Classes` folder into your project. 17 | 18 | ## Screenshots 19 | 20 | ![Buttons example](https://raw.github.com/barbosa/GBFlatButton/master/screenshot.png) 21 | 22 | ## Usage 23 | 24 | To create a flat button programmatically, just instantiate a new `GBFlatButton` with a frame and add it to some view, for example: 25 | 26 | ```objc 27 | GBFlatButton *button = [[GBFlatButton alloc] initWithFrame:CGRectMake(originX, originY, width, height)]; 28 | button.tintColor = [UIColor orangeColor]; // or import UIColor+GBFlatButton.h and use our cool colors 29 | [button setTitle:@"An orange button" forState:UIControlStateNormal]; 30 | [self.view addSubview:button]; 31 | ``` 32 | 33 | But you can also create a `GBFlatButton` via Interface Builder. To do it, drag a `UIButton` and drop it onto your view, change its custom class to `GBFlatButton` and customize it inside its File's Owner. For example: 34 | 35 | ```objc 36 | @implementation MyViewController () 37 | @property (weak, nonatomic) IBOutlet GBFlatButton *flatButton; 38 | @end 39 | 40 | @implementation MyViewController 41 | - (void)viewDidLoad 42 | { 43 | [super viewDidLoad]; 44 | _flatButton.tintColor = [UIColor orangeColor]; 45 | } 46 | @end 47 | ``` 48 | 49 | ### Note 50 | 51 | For iOS > 7.0, you can set the value of tintColor directly via Interface Builder. 52 | 53 | ## Author 54 | 55 | Gustavo Barbosa [@gustavocsb](http://twitter.com/gustavocsb) 56 | 57 | ## License 58 | 59 | Copyright (c) 2015 Gustavo Barbosa 60 | 61 | Permission is hereby granted, free of charge, to any person obtaining a copy 62 | of this software and associated documentation files (the "Software"), to deal 63 | in the Software without restriction, including without limitation the rights 64 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 65 | copies of the Software, and to permit persons to whom the Software is 66 | furnished to do so, subject to the following conditions: 67 | 68 | The above copyright notice and this permission notice shall be included in 69 | all copies or substantial portions of the Software. 70 | 71 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 72 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 73 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 74 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 75 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 76 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 77 | THE SOFTWARE. 78 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | desc "Runs the specs [EMPTY]" 2 | task :spec do 3 | # Provide your own implementation 4 | end 5 | 6 | task :version do 7 | git_remotes = `git remote`.strip.split("\n") 8 | 9 | if git_remotes.count > 0 10 | puts "-- fetching version number from github" 11 | sh 'git fetch' 12 | 13 | remote_version = remote_spec_version 14 | end 15 | 16 | if remote_version.nil? 17 | puts "There is no current released version. You're about to release a new Pod." 18 | version = "0.0.1" 19 | else 20 | puts "The current released version of your pod is " + 21 | remote_spec_version.to_s() 22 | version = suggested_version_number 23 | end 24 | 25 | puts "Enter the version you want to release (" + version + ") " 26 | new_version_number = $stdin.gets.strip 27 | if new_version_number == "" 28 | new_version_number = version 29 | end 30 | 31 | replace_version_number(new_version_number) 32 | end 33 | 34 | desc "Release a new version of the Pod (append repo=name to push to a private spec repo)" 35 | task :release do 36 | # Allow override of spec repo name using `repo=private` after task name 37 | repo = ENV["repo"] || "master" 38 | 39 | puts "* Running version" 40 | sh "rake version" 41 | 42 | unless ENV['SKIP_CHECKS'] 43 | if `git symbolic-ref HEAD 2>/dev/null`.strip.split('/').last != 'master' 44 | $stderr.puts "[!] You need to be on the `master' branch in order to be able to do a release." 45 | exit 1 46 | end 47 | 48 | if `git tag`.strip.split("\n").include?(spec_version) 49 | $stderr.puts "[!] A tag for version `#{spec_version}' already exists. Change the version in the podspec" 50 | exit 1 51 | end 52 | 53 | puts "You are about to release `#{spec_version}`, is that correct? [y/n]" 54 | exit if $stdin.gets.strip.downcase != 'y' 55 | end 56 | 57 | puts "* Running specs" 58 | sh "rake spec" 59 | 60 | puts "* Linting the podspec" 61 | sh "pod lib lint" 62 | 63 | # Then release 64 | sh "git commit #{podspec_path} CHANGELOG.md -m 'Release #{spec_version}' --allow-empty" 65 | sh "git tag -a #{spec_version} -m 'Release #{spec_version}'" 66 | sh "git push origin master" 67 | sh "git push origin --tags" 68 | sh "pod push #{repo} #{podspec_path}" 69 | end 70 | 71 | # @return [Pod::Version] The version as reported by the Podspec. 72 | # 73 | def spec_version 74 | require 'cocoapods' 75 | spec = Pod::Specification.from_file(podspec_path) 76 | spec.version 77 | end 78 | 79 | # @return [Pod::Version] The version as reported by the Podspec from remote. 80 | # 81 | def remote_spec_version 82 | require 'cocoapods-core' 83 | 84 | if spec_file_exist_on_remote? 85 | remote_spec = eval(`git show origin/master:#{podspec_path}`) 86 | remote_spec.version 87 | else 88 | nil 89 | end 90 | end 91 | 92 | # @return [Bool] If the remote repository has a copy of the podpesc file or not. 93 | # 94 | def spec_file_exist_on_remote? 95 | test_condition = `if git rev-parse --verify --quiet origin/master:#{podspec_path} >/dev/null; 96 | then 97 | echo 'true' 98 | else 99 | echo 'false' 100 | fi` 101 | 102 | 'true' == test_condition.strip 103 | end 104 | 105 | # @return [String] The relative path of the Podspec. 106 | # 107 | def podspec_path 108 | podspecs = Dir.glob('*.podspec') 109 | if podspecs.count == 1 110 | podspecs.first 111 | else 112 | raise "Could not select a podspec" 113 | end 114 | end 115 | 116 | # @return [String] The suggested version number based on the local and remote 117 | # version numbers. 118 | # 119 | def suggested_version_number 120 | if spec_version != remote_spec_version 121 | spec_version.to_s() 122 | else 123 | next_version(spec_version).to_s() 124 | end 125 | end 126 | 127 | # @param [Pod::Version] version 128 | # the version for which you need the next version 129 | # 130 | # @note It is computed by bumping the last component of 131 | # the version string by 1. 132 | # 133 | # @return [Pod::Version] The version that comes next after 134 | # the version supplied. 135 | # 136 | def next_version(version) 137 | version_components = version.to_s().split("."); 138 | last = (version_components.last.to_i() + 1).to_s 139 | version_components[-1] = last 140 | Pod::Version.new(version_components.join(".")) 141 | end 142 | 143 | # @param [String] new_version_number 144 | # the new version number 145 | # 146 | # @note This methods replaces the version number in the podspec file 147 | # with a new version number. 148 | # 149 | # @return void 150 | # 151 | def replace_version_number(new_version_number) 152 | text = File.read(podspec_path) 153 | text.gsub!(/(s.version( )*= ")#{spec_version}(")/, 154 | "\\1#{new_version_number}\\3") 155 | File.open(podspec_path, "w") { |file| file.puts text } 156 | end 157 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/barbosa/GBFlatButton/4cefd2207ddee018d3a1529f43c92bceae65c437/screenshot.png --------------------------------------------------------------------------------