├── ACPButtons ├── en.lproj │ ├── InfoPlist.strings │ ├── MainStoryboard_iPad.storyboard │ └── MainStoryboard_iPhone.storyboard ├── Default.png ├── Images │ ├── bg.png │ ├── bg@2X.png │ ├── cont-bt_normal.png │ ├── alert-gray-button.png │ ├── cont-bt_normal@2x.png │ ├── alert-gray-button@2x.png │ ├── cont-bt_highlighted.png │ └── cont-bt_highlighted@2x.png ├── Default@2x.png ├── Default-568h@2x.png ├── AppDelegate.h ├── ACPButtons-Prefix.pch ├── main.m ├── ViewController.h ├── ACPButtons-Info.plist ├── AppDelegate.m └── ViewController.m ├── Screenshot1.png ├── Screenshot2.png ├── ACPButtonsTests ├── en.lproj │ └── InfoPlist.strings ├── ACPButtonsTests.h ├── ACPButtonsTests.m └── ACPButtonsTests-Info.plist ├── ACPButtons.xcodeproj ├── xcuserdata │ └── ACP.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints.xcbkptlist │ │ └── xcschemes │ │ ├── xcschememanagement.plist │ │ └── ACPButtons.xcscheme ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── ACP.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings └── project.pbxproj ├── .gitignore ├── ACPButton.podspec ├── LICENSE ├── README.md ├── ACPButton.h └── ACPButton.m /ACPButtons/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Screenshot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/Screenshot1.png -------------------------------------------------------------------------------- /Screenshot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/Screenshot2.png -------------------------------------------------------------------------------- /ACPButtonsTests/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /ACPButtons/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Default.png -------------------------------------------------------------------------------- /ACPButtons/Images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/bg.png -------------------------------------------------------------------------------- /ACPButtons/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Default@2x.png -------------------------------------------------------------------------------- /ACPButtons/Images/bg@2X.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/bg@2X.png -------------------------------------------------------------------------------- /ACPButtons/Default-568h@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Default-568h@2x.png -------------------------------------------------------------------------------- /ACPButtons/Images/cont-bt_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/cont-bt_normal.png -------------------------------------------------------------------------------- /ACPButtons/Images/alert-gray-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/alert-gray-button.png -------------------------------------------------------------------------------- /ACPButtons/Images/cont-bt_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/cont-bt_normal@2x.png -------------------------------------------------------------------------------- /ACPButtons/Images/alert-gray-button@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/alert-gray-button@2x.png -------------------------------------------------------------------------------- /ACPButtons/Images/cont-bt_highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/cont-bt_highlighted.png -------------------------------------------------------------------------------- /ACPButtons/Images/cont-bt_highlighted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons/Images/cont-bt_highlighted@2x.png -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/xcuserdata/ACP.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/project.xcworkspace/xcuserdata/ACP.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/antoniocasero/ACPButton/HEAD/ACPButtons.xcodeproj/project.xcworkspace/xcuserdata/ACP.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /ACPButtonsTests/ACPButtonsTests.h: -------------------------------------------------------------------------------- 1 | // 2 | // ACPButtonsTests.h 3 | // ACPButtonsTests 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ACPButtonsTests : SenTestCase 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /ACPButtons/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // ACPButtons 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /ACPButtons/ACPButtons-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'ACPButtons' target in the 'ACPButtons' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_5_0 8 | #warning "This project uses features only available in iOS SDK 5.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | -------------------------------------------------------------------------------- /ACPButtons/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // ACPButtons 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. 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 | -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/project.xcworkspace/xcuserdata/ACP.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X Finder 2 | .DS_Store 3 | 4 | # Xcode per-user config 5 | *.mode1 6 | *.mode1v3 7 | *.mode2v3 8 | *.perspective 9 | *.perspectivev3 10 | *.pbxuser 11 | *.xccheckout 12 | *.xcworkspace 13 | xcuserdata 14 | !default.xcworkspace 15 | xcuserdata 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | # Build products 20 | build/ 21 | *.o 22 | *.LinkFileList 23 | *.hmap 24 | # Automatic backup files 25 | *~.nib/ 26 | *.swp 27 | *~ 28 | *.dat 29 | *.dep 30 | # Cocoapods 31 | Pods 32 | # AppCode specific files 33 | .idea/ 34 | *.iml -------------------------------------------------------------------------------- /ACPButtonsTests/ACPButtonsTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // ACPButtonsTests.m 3 | // ACPButtonsTests 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. All rights reserved. 7 | // 8 | 9 | #import "ACPButtonsTests.h" 10 | 11 | @implementation ACPButtonsTests 12 | 13 | - (void)setUp 14 | { 15 | [super setUp]; 16 | 17 | // Set-up code here. 18 | } 19 | 20 | - (void)tearDown 21 | { 22 | // Tear-down code here. 23 | 24 | [super tearDown]; 25 | } 26 | 27 | - (void)testExample 28 | { 29 | STFail(@"Unit tests are not implemented yet in ACPButtonsTests"); 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /ACPButton.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "ACPButton" 3 | s.version = "1.0.0" 4 | s.summary = "UIButton subclass to easily add custom buttons to your iOS app." 5 | s.homepage = "https://github.com/antoniocasero/ACPButton" 6 | s.screenshots = "https://github.com/antoniocasero/ACPButton/blob/master/Screenshot1.png" 7 | s.license = { :type => 'MIT', :file => 'LICENSE' } 8 | s.author = { "Antonio Casero" => "anto.casero@gmail.com" } 9 | s.source = { :git => "https://github.com/antoniocasero/ACPButton.git", :tag => '1.0.0' } 10 | s.platform = :ios, '5.0' 11 | s.source_files = 'ACPButton.{h,m}' 12 | s.requires_arc = true 13 | end -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/xcuserdata/ACP.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ACPButtons.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 7C95B24A1792B3A600376DFE 16 | 17 | primary 18 | 19 | 20 | 7C95B2731792B3A700376DFE 21 | 22 | primary 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ACPButtonsTests/ACPButtonsTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | com.utoppia.${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 | -------------------------------------------------------------------------------- /ACPButtons/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // ACPButtons 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ACPButton.h" 11 | 12 | 13 | @interface ViewController : UIViewController 14 | 15 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonNoImage1; 16 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonNoImage2; 17 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonNoImage3; 18 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonNoImage4; 19 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonNoImage5; 20 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonWithImage1; 21 | @property (weak, nonatomic) IBOutlet ACPButton *testButtonWithImage2; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013 Antonio Casero 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /ACPButtons/ACPButtons-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.utoppia.${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 | UIMainStoryboardFile 28 | MainStoryboard_iPhone 29 | UIMainStoryboardFile~ipad 30 | MainStoryboard_iPad 31 | UIRequiredDeviceCapabilities 32 | 33 | armv7 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationLandscapeLeft 39 | UIInterfaceOrientationLandscapeRight 40 | 41 | UISupportedInterfaceOrientations~ipad 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationPortraitUpsideDown 45 | UIInterfaceOrientationLandscapeLeft 46 | UIInterfaceOrientationLandscapeRight 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /ACPButtons/en.lproj/MainStoryboard_iPad.storyboard: -------------------------------------------------------------------------------- 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 | 30 | 31 | -------------------------------------------------------------------------------- /ACPButtons/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // ACPButtons 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @implementation AppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | // Override point for customization after application launch. 16 | return YES; 17 | } 18 | 19 | - (void)applicationWillResignActive:(UIApplication *)application 20 | { 21 | // 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. 22 | // 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. 23 | } 24 | 25 | - (void)applicationDidEnterBackground:(UIApplication *)application 26 | { 27 | // 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. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | - (void)applicationWillEnterForeground:(UIApplication *)application 32 | { 33 | // 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. 34 | } 35 | 36 | - (void)applicationDidBecomeActive:(UIApplication *)application 37 | { 38 | // 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. 39 | } 40 | 41 | - (void)applicationWillTerminate:(UIApplication *)application 42 | { 43 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ACPButton 2 | 3 | **⚠️ Important note! This library is not maintained anymore. Feel free to keep it updated by yourself, either forking or asking for being the contributor.** 4 | 5 | This extension of UIButton allow you to have full control of your project buttons from one class. This class give you the oportunity to create buttons completly image free, combining flat color, gradients, borders etc. You also can create easily buttons using resizable images. 6 | 7 | ![](Screenshot1.png) 8 | 9 | 10 | ## Instalation 11 | 12 | ### From [CocoaPods][1] 13 | 14 | pod `ACPButton` 15 | 16 | ### From source 17 | 18 | Clone the repository 19 | 20 | [*$ git clone git@github.com:antoniocasero/ACPButton.git*]() 21 | 22 | Or just drag this class to your project and import `ACPButton` to your viewcontroller. 23 | 24 | 25 | ## Implementing 26 | 27 | In the storyboard or XIB file, select your button and change the button class to ACPButton 28 | 29 | ![](Screenshot2.png) 30 | 31 | Then, on viewDidLoad you can set up the button depending of yor needs, 32 | 33 | * ```- (void) setStyleType:(ACPButtonType)style;``` 34 | * `- (void) setFlatStyleType:(ACPButtonType)style;` 35 | * `- (void) setFlatStyle:(UIColor*)normal andHighlightedColor:(UIColor*)highlight;` 36 | * `- (void) setStyle:(UIColor*)topColor andBottomColor:(UIColor*)bottomColor;` 37 | * `- (void) setStyleWithImage:(NSString*)image highlightedImage:(NSString*)hImage disableImage:(NSString *)dImage andInsets:(UIEdgeInsets)insets;` 38 | * ```- (void) setGlowHighlightedState:(BOOL)glowOption;``` 39 | 40 | 41 | ## Compatibility 42 | 43 | - Supports ARC. If you want to use it in a project without ARC, mark ACPButton.m with the linker flag-fobjc-arc. 44 | - Compatible with iOS5+. 45 | 46 | ## License 47 | 48 | `ACPButton` is available under the MIT license. See the LICENSE file for more info. 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | [1]: http://www.cocoapods.org 69 | 70 | [1]: Screenshot1.png 71 | [2]: Screenshot2.png 72 | 73 | 74 | [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/antoniocasero/ACPButton/trend.png)](https://bitdeli.com/free "Bitdeli Badge") 75 | 76 | -------------------------------------------------------------------------------- /ACPButtons/ViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.m 3 | // ACPButtons 4 | // 5 | // Created by Antonio Casero Palmero on 7/14/13. 6 | // Copyright (c) 2013 ACP. All rights reserved. 7 | // 8 | 9 | #import "ViewController.h" 10 | 11 | @interface ViewController () 12 | 13 | @end 14 | 15 | @implementation ViewController 16 | 17 | - (void)viewDidLoad 18 | { 19 | [super viewDidLoad]; 20 | 21 | self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]]; 22 | 23 | 24 | 25 | //We set up different buttons 26 | 27 | /*-------------------------------------------------------------------------- 28 | Custom buttons with gradients 29 | --------------------------------------------------------------------------*/ 30 | 31 | [_testButtonNoImage1 setStyleType:ACPButtonOK]; 32 | [_testButtonNoImage1 setLabelTextColor:[UIColor whiteColor] highlightedColor:[UIColor whiteColor] disableColor:nil]; 33 | [_testButtonNoImage1 setLabelFont:[UIFont fontWithName:@"Trebuchet MS" size:20]]; 34 | 35 | 36 | [_testButtonNoImage2 setStyleType:ACPButtonCancel]; 37 | [_testButtonNoImage2 setCornerRadius:10]; 38 | 39 | 40 | [_testButtonNoImage3 setStyle:[UIColor yellowColor] andBottomColor:[UIColor orangeColor]]; 41 | [_testButtonNoImage3 setLabelTextColor:[UIColor orangeColor] highlightedColor:[UIColor redColor] disableColor:nil]; 42 | [_testButtonNoImage3 setCornerRadius:20]; 43 | [_testButtonNoImage3 setBorderStyle:[UIColor orangeColor] andInnerColor:nil]; 44 | // [_testButtonNoImage3 setGlowHighlightedState:YES]; 45 | 46 | /*-------------------------------------------------------------------------- 47 | Custom Flat buttons 48 | --------------------------------------------------------------------------*/ 49 | [_testButtonNoImage4 setFlatStyleType:ACPButtonGrey]; 50 | [_testButtonNoImage5 setFlatStyleType:ACPButtonDarkGrey]; 51 | [_testButtonNoImage5 setBorderStyle:[UIColor blackColor] andInnerColor:[UIColor darkGrayColor]]; 52 | [_testButtonNoImage5 setLabelFont:[UIFont fontWithName:@"Trebuchet MS" size:20]]; 53 | 54 | /*-------------------------------------------------------------------------- 55 | Image resize buttons 56 | --------------------------------------------------------------------------*/ 57 | [_testButtonWithImage1 setStyleWithImage:@"cont-bt_normal.png" highlightedImage:@"cont-bt_normal.png" disableImage:nil andInsets:UIEdgeInsetsMake(19, 7, 19, 7)]; 58 | [_testButtonWithImage1 setLabelTextShadow:CGSizeMake(-1, -1) normalColor:[UIColor blackColor] highlightedColor:nil disableColor:nil]; 59 | [_testButtonWithImage1 setLabelFont:[UIFont fontWithName:@"Helvetica-BoldOblique" size:20]]; 60 | [_testButtonWithImage1 setGlowHighlightedState:YES]; 61 | 62 | 63 | [_testButtonWithImage2 setStyleWithImage:@"alert-gray-button.png" highlightedImage:nil disableImage:nil andInsets:UIEdgeInsetsMake(19, 7, 19, 7)]; 64 | [_testButtonWithImage2 setGlowHighlightedState:YES]; 65 | 66 | 67 | 68 | } 69 | 70 | - (void)didReceiveMemoryWarning 71 | { 72 | [super didReceiveMemoryWarning]; 73 | // Dispose of any resources that can be recreated. 74 | } 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /ACPButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // ACPButton.h 3 | // 4 | // Created by Antonio Casero 5 | // Copyright (c) 2013 Antonio Casero. All rights reserved. 6 | // 7 | 8 | 9 | #import 10 | #import 11 | 12 | @interface ACPButton : UIButton 13 | 14 | typedef enum { 15 | 16 | ACPButtonOK, 17 | ACPButtonCancel, 18 | ACPButtonBlue, 19 | ACPButtonGrey, 20 | ACPButtonDarkGrey, 21 | ACPButtonPurple 22 | 23 | } ACPButtonType; 24 | 25 | /*-------------------------------------------------------------------------- 26 | Set up a predefine button 27 | --------------------------------------------------------------------------*/ 28 | - (void) setStyleType:(ACPButtonType)style; 29 | 30 | /*-------------------------------------------------------------------------- 31 | Create your own button using images. 32 | --------------------------------------------------------------------------*/ 33 | - (void) setStyleWithImage:(NSString*)image highlightedImage:(NSString*)hImage disableImage:(NSString*)dImage andInsets:(UIEdgeInsets)insets; 34 | 35 | /*-------------------------------------------------------------------------- 36 | Set up a predefine flat button 37 | --------------------------------------------------------------------------*/ 38 | - (void) setFlatStyleType:(ACPButtonType)style; 39 | 40 | /*-------------------------------------------------------------------------- 41 | Set up a custom flat button 42 | --------------------------------------------------------------------------*/ 43 | - (void) setFlatStyle:(UIColor*)normal andHighlightedColor:(UIColor*)highlighted; 44 | 45 | /*-------------------------------------------------------------------------- 46 | Define your own gradient style 47 | --------------------------------------------------------------------------*/ 48 | - (void) setStyle:(UIColor*)topColor andBottomColor:(UIColor*)bottomColor; 49 | 50 | /*-------------------------------------------------------------------------- 51 | Set color borders - External and inner 52 | --------------------------------------------------------------------------*/ 53 | - (void) setBorderStyle:(UIColor*)borderColor andInnerColor:(UIColor*)innerColor; 54 | 55 | 56 | /*-------------------------------------------------------------------------- 57 | Define the corner radius 58 | --------------------------------------------------------------------------*/ 59 | - (void) setCornerRadius:(NSInteger)value; 60 | 61 | /*-------------------------------------------------------------------------- 62 | Define the color of the label 63 | --------------------------------------------------------------------------*/ 64 | - (void) setLabelTextColor:(UIColor*)nColor highlightedColor:(UIColor*)hColor disableColor:(UIColor*)dColor; 65 | 66 | /*-------------------------------------------------------------------------- 67 | Define the color of the text shadow 68 | --------------------------------------------------------------------------*/ 69 | - (void) setLabelTextShadow:(CGSize)shadowOffSet normalColor:(UIColor*)nColor highlightedColor:(UIColor*)hColor disableColor:(UIColor*)dColor; 70 | 71 | /*-------------------------------------------------------------------------- 72 | Change font of the button 73 | --------------------------------------------------------------------------*/ 74 | - (void) setLabelFont:(UIFont*)font; 75 | 76 | /*-------------------------------------------------------------------------- 77 | Label with glow 78 | --------------------------------------------------------------------------*/ 79 | - (void) setGlowHighlightedState:(BOOL)glowOption; 80 | 81 | @end 82 | -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/xcuserdata/ACP.xcuserdatad/xcschemes/ACPButtons.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 49 | 50 | 51 | 52 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 79 | 80 | 86 | 87 | 88 | 89 | 91 | 92 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /ACPButtons/en.lproj/MainStoryboard_iPhone.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 24 | 32 | 45 | 53 | 61 | 69 | 80 | 88 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /ACPButton.m: -------------------------------------------------------------------------------- 1 | 2 | // 3 | // ACPButton.m 4 | // 5 | // Created by Antonio Casero 6 | // Copyright (c) 2013 Antonio Casero. All rights reserved. 7 | // 8 | 9 | #import "ACPButton.h" 10 | 11 | //Values by default - Set up this values depending of your project design! 12 | 13 | #define kLabelFont [UIFont fontWithName:@"HelveticaNeue" size:15] 14 | #define kColorFontNormal [UIColor whiteColor] 15 | #define kColorFontHighlighted [UIColor whiteColor] 16 | #define kColorFontDisable [UIColor grayColor] 17 | 18 | #define kColorShadowNormal [UIColor blackColor] 19 | #define kColorShadowHighlighted [UIColor whiteColor] 20 | #define kColorShadowDisable [UIColor clearColor] 21 | 22 | 23 | #define kShadowOffset CGSizeMake(0, 0) 24 | 25 | #define kCornerRadius 5 26 | 27 | @interface ACPButton () 28 | 29 | 30 | @property (strong, nonatomic) UIColor * borderColor; 31 | @property (strong, nonatomic) UIColor * inneColor; 32 | @property (strong, nonatomic) UIColor * topColor; 33 | @property (strong, nonatomic) UIColor * bottomColor; 34 | 35 | //Flat style 36 | @property (assign, nonatomic) BOOL isFlat; 37 | @property (strong, nonatomic) UIColor * normalStateColor; 38 | @property (strong, nonatomic) UIColor * highlightedColor; 39 | 40 | @property (assign, nonatomic) NSInteger buttonRadius; 41 | 42 | //Glow 43 | @property (assign, nonatomic) BOOL glowActivated; 44 | 45 | 46 | 47 | @end 48 | 49 | @implementation ACPButton 50 | 51 | 52 | 53 | -(id)initWithCoder:(NSCoder *)aDecoder { 54 | 55 | self = [super initWithCoder:aDecoder]; 56 | if(self) { 57 | 58 | /*-------------------------------------------------------------------------- 59 | This type of button is created by default. 60 | --------------------------------------------------------------------------*/ 61 | 62 | [self setStyleType:ACPButtonGrey]; 63 | _glowActivated = NO; //By default 64 | } 65 | return self; 66 | } 67 | 68 | 69 | 70 | 71 | - (void) setStyleType:(ACPButtonType)style { 72 | 73 | _isFlat = NO; 74 | 75 | switch (style) { 76 | 77 | /*-------------------------------------------------------------------------- 78 | You can set this values acording with your project 79 | --------------------------------------------------------------------------*/ 80 | 81 | 82 | case ACPButtonOK: 83 | _topColor = [UIColor colorWithRed:0.588235 green:0.847059 blue:0.396078 alpha:1]; 84 | _bottomColor=[UIColor colorWithRed:0.388235 green:0.650980 blue:0.184314 alpha:1]; 85 | _borderColor = [UIColor colorWithRed:0.388235 green:0.650980 blue:0.184314 alpha:1] ; 86 | _inneColor = nil; 87 | break; 88 | case ACPButtonBlue: 89 | _topColor = [UIColor colorWithRed:0.423529 green:0.713726 blue:0.921569 alpha:1]; 90 | _bottomColor=[UIColor colorWithRed:0.211765 green:0.482353 blue:0.815686 alpha:1]; 91 | _borderColor = [UIColor colorWithRed:0.250980 green:0.505882 blue:0.686275 alpha:1] ; 92 | _inneColor = nil; 93 | break; 94 | case ACPButtonGrey: 95 | _topColor = [UIColor colorWithRed:0.627451 green:0.627451 blue:0.627451 alpha:1]; 96 | _bottomColor=[UIColor colorWithRed:0.509804 green:0.509804 blue:0.509804 alpha:1]; 97 | _borderColor = [UIColor colorWithRed:0.627451 green:0.627451 blue:0.627451 alpha:1] ; 98 | _inneColor = nil; 99 | break; 100 | case ACPButtonCancel: 101 | _topColor = [UIColor colorWithRed:0.929412 green:0.392157 blue:0.290196 alpha:1]; 102 | _bottomColor=[UIColor colorWithRed:0.839216 green:0.282353 blue:0.270588 alpha:1]; 103 | _borderColor = [UIColor colorWithRed:0.815686 green:0.215686 blue:0.145098 alpha:1]; 104 | _inneColor = nil; 105 | break; 106 | case ACPButtonDarkGrey: 107 | _topColor = [UIColor colorWithRed:0.525490 green:0.525490 blue:0.525490 alpha:1]; 108 | _bottomColor=[UIColor colorWithRed:0.262745 green:0.258824 blue:0.262745 alpha:1]; 109 | _borderColor = [UIColor colorWithRed:0.117647 green:0.117647 blue:0.117647 alpha:1]; 110 | _inneColor = nil; 111 | break; 112 | case ACPButtonPurple: 113 | _topColor = [UIColor colorWithRed:0.807843 green:0.552941 blue:0.929412 alpha:1]; 114 | _bottomColor=[UIColor colorWithRed:0.603922 green:0.368627 blue:0.784314 alpha:1]; 115 | _borderColor = [UIColor colorWithRed:0.364706 green:0.168627 blue:0.541176 alpha:1]; 116 | _inneColor = nil; 117 | break; 118 | 119 | default: 120 | break; 121 | } 122 | 123 | self.buttonRadius = 5; 124 | [self setTextStyle]; 125 | 126 | } 127 | 128 | - (void) setFlatStyleType:(ACPButtonType)style { 129 | 130 | [self setStyleType:style]; 131 | 132 | _isFlat = YES; 133 | self.buttonRadius = 0; 134 | [self setTextStyle]; 135 | 136 | 137 | } 138 | 139 | - (void) setFlatStyle:(UIColor*)normal andHighlightedColor:(UIColor*)highlighted { 140 | 141 | [self setStyle:normal andBottomColor:highlighted]; 142 | 143 | _isFlat = YES; 144 | self.buttonRadius = 0; 145 | [self setTextStyle]; 146 | 147 | 148 | } 149 | 150 | 151 | - (void) setStyle:(UIColor*)topColor andBottomColor:(UIColor*)bottomColor { 152 | 153 | _isFlat = NO; 154 | _topColor = topColor; 155 | _bottomColor = bottomColor; 156 | if(!_bottomColor) 157 | _bottomColor = topColor; 158 | 159 | [self setNeedsDisplay]; 160 | [self setTextStyle]; 161 | 162 | } 163 | 164 | 165 | 166 | - (void) setBorderStyle:(UIColor*)borderColor andInnerColor:(UIColor*)innerColor { 167 | 168 | _borderColor = borderColor; 169 | _inneColor = innerColor; 170 | [self setNeedsDisplay]; 171 | 172 | } 173 | 174 | 175 | - (void) setCornerRadius:(NSInteger)value { 176 | 177 | self.buttonRadius = value; 178 | 179 | } 180 | 181 | - (void) setGlowHighlightedState:(BOOL)glowOption { 182 | 183 | self.glowActivated = glowOption; 184 | } 185 | 186 | 187 | - (void) turnOnGlow { 188 | self.titleLabel.layer.shadowColor = [UIColor whiteColor].CGColor; 189 | self.titleLabel.layer.shadowOffset = CGSizeMake(0.0, 0.0); 190 | self.titleLabel.layer.shadowRadius = 10.0; 191 | self.titleLabel.layer.shadowOpacity = 0.8; 192 | self.titleLabel.layer.masksToBounds = NO; 193 | 194 | } 195 | 196 | - (void) turnOffGlow { 197 | self.titleLabel.layer.shadowColor = nil; 198 | self.titleLabel.layer.shadowOffset = CGSizeMake(0.0, 0.0); 199 | self.titleLabel.layer.shadowRadius = 0; 200 | self.titleLabel.layer.shadowOpacity = 0; 201 | self.titleLabel.layer.masksToBounds = NO; 202 | 203 | } 204 | //---------------------------------------------------------------------------------------------------------------- 205 | # pragma mark - 206 | # pragma mark Override the uibutton methods 207 | # pragma mark - 208 | //---------------------------------------------------------------------------------------------------------------- 209 | 210 | - (void)setHighlighted:(BOOL)highlighted 211 | { 212 | [self setNeedsDisplay]; 213 | 214 | if(_glowActivated){ 215 | 216 | if(highlighted){ 217 | 218 | [self turnOnGlow]; 219 | } 220 | else { 221 | 222 | [self turnOffGlow]; 223 | } 224 | 225 | } 226 | [super setHighlighted:highlighted]; 227 | } 228 | 229 | # pragma mark - 230 | # pragma mark Set up the button with a image 231 | # pragma mark - 232 | 233 | - (void)setStyleWithImage:(NSString*)image highlightedImage:(NSString*)hImage disableImage:(NSString*)dImage andInsets:(UIEdgeInsets)insets { 234 | 235 | // Define resizable images 236 | UIImage *resizableButton = [[UIImage imageNamed:image] resizableImageWithCapInsets:insets]; 237 | UIImage *resizableButtonHighlighted = [[UIImage imageNamed:hImage] resizableImageWithCapInsets:insets]; 238 | UIImage *resizableButtonDisabled = [[UIImage imageNamed:dImage] resizableImageWithCapInsets:insets]; 239 | 240 | // Set resizable background image 241 | [self setBackgroundImage:resizableButton forState:UIControlStateNormal]; 242 | [self setBackgroundImage:resizableButtonHighlighted forState:UIControlStateHighlighted]; 243 | [self setBackgroundImage:resizableButtonDisabled forState:UIControlStateDisabled]; 244 | 245 | [self setTextStyle]; 246 | 247 | 248 | 249 | _topColor=nil; 250 | _borderColor=nil; 251 | _inneColor = nil; 252 | _bottomColor = nil; 253 | 254 | } 255 | 256 | 257 | # pragma mark - 258 | # pragma mark Set up the button text 259 | # pragma mark - 260 | 261 | 262 | - (void) setTextStyle { 263 | 264 | /*-------------------------------------------------------------------------- 265 | By default 266 | --------------------------------------------------------------------------*/ 267 | 268 | [self.titleLabel setFont:kLabelFont]; 269 | 270 | [self.titleLabel setShadowOffset:kShadowOffset]; 271 | 272 | [self setTitleShadowColor:kColorShadowNormal forState:UIControlStateNormal]; 273 | [self setTitleColor:kColorFontNormal forState:UIControlStateNormal]; 274 | 275 | [self setTitleShadowColor:kColorShadowHighlighted forState:UIControlStateHighlighted]; 276 | [self setTitleColor:kColorFontHighlighted forState:UIControlStateHighlighted]; 277 | 278 | [self setTitleShadowColor:kColorShadowDisable forState:UIControlStateDisabled]; 279 | [self setTitleColor:kColorFontDisable forState:UIControlStateDisabled]; 280 | 281 | } 282 | 283 | /*-------------------------------------------------------------------------- 284 | Define the color of the label for every state 285 | --------------------------------------------------------------------------*/ 286 | - (void) setLabelTextColor:(UIColor*)nColor highlightedColor:(UIColor*)hColor disableColor:(UIColor*)dColor{ 287 | [self setTitleColor:nColor forState:UIControlStateNormal]; 288 | [self setTitleColor:hColor forState:UIControlStateHighlighted]; 289 | [self setTitleColor:dColor forState:UIControlStateDisabled]; 290 | } 291 | 292 | /*-------------------------------------------------------------------------- 293 | Define the color of the text shadow 294 | --------------------------------------------------------------------------*/ 295 | - (void) setLabelTextShadow:(CGSize)shadowOffSet normalColor:(UIColor*)nColor highlightedColor:(UIColor*)hColor disableColor:(UIColor*)dColor{ 296 | 297 | [self.titleLabel setShadowOffset:shadowOffSet]; 298 | [self setTitleShadowColor:nColor forState:UIControlStateNormal]; 299 | [self setTitleShadowColor:hColor forState:UIControlStateHighlighted]; 300 | [self setTitleShadowColor:dColor forState:UIControlStateDisabled]; 301 | 302 | } 303 | 304 | 305 | - (void) setLabelFont:(UIFont*)font { 306 | 307 | /*-------------------------------------------------------------------------- 308 | If you want to change the font by default, change the macro on top of 309 | this class. 310 | --------------------------------------------------------------------------*/ 311 | 312 | [self.titleLabel setFont:font]; 313 | 314 | } 315 | 316 | 317 | 318 | # pragma mark - 319 | # pragma mark Draw rect overrides 320 | # pragma mark - 321 | 322 | - (void)drawRect:(CGRect)rect 323 | { 324 | // General Declarations 325 | CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); 326 | CGContextRef context = UIGraphicsGetCurrentContext(); 327 | UIBezierPath *roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(0, 0, self.frame.size.width, self.frame.size.height) cornerRadius: self.buttonRadius]; 328 | // Use the bezier as a clipping path 329 | [roundedRectanglePath addClip]; 330 | 331 | if(!_isFlat){ 332 | 333 | if (_topColor){ 334 | 335 | 336 | // Color Declarations 337 | 338 | UIColor *topColor = _topColor; 339 | UIColor *bottomColor =_bottomColor; 340 | 341 | 342 | // Gradient Declarations 343 | 344 | 345 | 346 | NSArray *gradientColors = (@[ 347 | (id)_topColor.CGColor, 348 | (id)_bottomColor.CGColor 349 | ]); 350 | 351 | CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)(gradientColors), NULL); 352 | 353 | NSArray *highlightedGradientColors = (@[ 354 | (id)bottomColor.CGColor, 355 | (id)topColor.CGColor 356 | ]); 357 | 358 | CGGradientRef highlightedGradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)(highlightedGradientColors), NULL); 359 | 360 | 361 | // Draw rounded rectangle bezier path 362 | 363 | 364 | // Use one of the two gradients depending on the state of the button 365 | CGGradientRef background = self.highlighted? highlightedGradient : gradient; 366 | 367 | // Draw gradient within the path 368 | CGContextDrawLinearGradient(context, background, CGPointMake(140, 0), CGPointMake(140, self.frame.size.height), 0); 369 | 370 | //Release the gradient 371 | CGGradientRelease(gradient); 372 | CGGradientRelease(highlightedGradient); 373 | 374 | } 375 | 376 | } else 377 | { 378 | 379 | //Solid colors 380 | CGColorRef colorRef = self.highlighted? _topColor.CGColor : _bottomColor.CGColor; 381 | 382 | CGContextSetFillColor(context, CGColorGetComponents(colorRef)); 383 | CGContextFillRect(context, rect); 384 | 385 | 386 | } 387 | // Draw border 388 | 389 | if(_borderColor){ 390 | [_borderColor setStroke]; 391 | roundedRectanglePath.lineWidth = 2; 392 | [roundedRectanglePath stroke]; 393 | } 394 | // Draw Inner Glow 395 | if(_inneColor){ 396 | UIBezierPath *innerGlowRect = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(1.5, 1.5, self.frame.size.width-2, self.frame.size.height-2) cornerRadius: 0]; 397 | [_inneColor setStroke]; 398 | innerGlowRect.lineWidth = 1; 399 | [innerGlowRect stroke]; 400 | } 401 | // Cleanup 402 | CGColorSpaceRelease(colorSpace); 403 | 404 | } 405 | 406 | @end 407 | -------------------------------------------------------------------------------- /ACPButtons.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 7C95B24F1792B3A600376DFE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95B24E1792B3A600376DFE /* UIKit.framework */; }; 11 | 7C95B2511792B3A600376DFE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95B2501792B3A600376DFE /* Foundation.framework */; }; 12 | 7C95B2531792B3A600376DFE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95B2521792B3A600376DFE /* CoreGraphics.framework */; }; 13 | 7C95B2591792B3A700376DFE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B2571792B3A700376DFE /* InfoPlist.strings */; }; 14 | 7C95B25B1792B3A700376DFE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C95B25A1792B3A700376DFE /* main.m */; }; 15 | 7C95B25F1792B3A700376DFE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C95B25E1792B3A700376DFE /* AppDelegate.m */; }; 16 | 7C95B2611792B3A700376DFE /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B2601792B3A700376DFE /* Default.png */; }; 17 | 7C95B2631792B3A700376DFE /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B2621792B3A700376DFE /* Default@2x.png */; }; 18 | 7C95B2651792B3A700376DFE /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B2641792B3A700376DFE /* Default-568h@2x.png */; }; 19 | 7C95B2681792B3A700376DFE /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B2661792B3A700376DFE /* MainStoryboard_iPhone.storyboard */; }; 20 | 7C95B26B1792B3A700376DFE /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B2691792B3A700376DFE /* MainStoryboard_iPad.storyboard */; }; 21 | 7C95B26E1792B3A700376DFE /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C95B26D1792B3A700376DFE /* ViewController.m */; }; 22 | 7C95B2761792B3A700376DFE /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95B2751792B3A700376DFE /* SenTestingKit.framework */; }; 23 | 7C95B2771792B3A700376DFE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95B24E1792B3A600376DFE /* UIKit.framework */; }; 24 | 7C95B2781792B3A700376DFE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C95B2501792B3A600376DFE /* Foundation.framework */; }; 25 | 7C95B2801792B3A700376DFE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B27E1792B3A700376DFE /* InfoPlist.strings */; }; 26 | 7C95B2831792B3A700376DFE /* ACPButtonsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C95B2821792B3A700376DFE /* ACPButtonsTests.m */; }; 27 | 7C95B29617930A3D00376DFE /* cont-bt_highlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B29217930A3D00376DFE /* cont-bt_highlighted.png */; }; 28 | 7C95B29717930A3D00376DFE /* cont-bt_highlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B29317930A3D00376DFE /* cont-bt_highlighted@2x.png */; }; 29 | 7C95B29817930A3D00376DFE /* cont-bt_normal.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B29417930A3D00376DFE /* cont-bt_normal.png */; }; 30 | 7C95B29917930A3D00376DFE /* cont-bt_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B29517930A3D00376DFE /* cont-bt_normal@2x.png */; }; 31 | 7C95B29C17930CF600376DFE /* alert-gray-button.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B29A17930CF600376DFE /* alert-gray-button.png */; }; 32 | 7C95B29D17930CF600376DFE /* alert-gray-button@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C95B29B17930CF600376DFE /* alert-gray-button@2x.png */; }; 33 | 7C9BB2DC1795F034004CFB77 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C9BB2DA1795F034004CFB77 /* bg.png */; }; 34 | 7C9BB2DD1795F034004CFB77 /* bg@2X.png in Resources */ = {isa = PBXBuildFile; fileRef = 7C9BB2DB1795F034004CFB77 /* bg@2X.png */; }; 35 | 7C9BB2E01795FBE7004CFB77 /* ACPButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C9BB2DF1795FBE7004CFB77 /* ACPButton.m */; }; 36 | /* End PBXBuildFile section */ 37 | 38 | /* Begin PBXContainerItemProxy section */ 39 | 7C95B2791792B3A700376DFE /* PBXContainerItemProxy */ = { 40 | isa = PBXContainerItemProxy; 41 | containerPortal = 7C95B2431792B3A600376DFE /* Project object */; 42 | proxyType = 1; 43 | remoteGlobalIDString = 7C95B24A1792B3A600376DFE; 44 | remoteInfo = ACPButtons; 45 | }; 46 | /* End PBXContainerItemProxy section */ 47 | 48 | /* Begin PBXFileReference section */ 49 | 7C95B24B1792B3A600376DFE /* ACPButtons.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ACPButtons.app; sourceTree = BUILT_PRODUCTS_DIR; }; 50 | 7C95B24E1792B3A600376DFE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 51 | 7C95B2501792B3A600376DFE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 52 | 7C95B2521792B3A600376DFE /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 53 | 7C95B2561792B3A700376DFE /* ACPButtons-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ACPButtons-Info.plist"; sourceTree = ""; }; 54 | 7C95B2581792B3A700376DFE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 55 | 7C95B25A1792B3A700376DFE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 56 | 7C95B25C1792B3A700376DFE /* ACPButtons-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ACPButtons-Prefix.pch"; sourceTree = ""; }; 57 | 7C95B25D1792B3A700376DFE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 58 | 7C95B25E1792B3A700376DFE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 59 | 7C95B2601792B3A700376DFE /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; 60 | 7C95B2621792B3A700376DFE /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; 61 | 7C95B2641792B3A700376DFE /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; 62 | 7C95B2671792B3A700376DFE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = ""; }; 63 | 7C95B26A1792B3A700376DFE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = ""; }; 64 | 7C95B26C1792B3A700376DFE /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; 65 | 7C95B26D1792B3A700376DFE /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 66 | 7C95B2741792B3A700376DFE /* ACPButtonsTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ACPButtonsTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; 67 | 7C95B2751792B3A700376DFE /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; 68 | 7C95B27D1792B3A700376DFE /* ACPButtonsTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ACPButtonsTests-Info.plist"; sourceTree = ""; }; 69 | 7C95B27F1792B3A700376DFE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 70 | 7C95B2811792B3A700376DFE /* ACPButtonsTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ACPButtonsTests.h; sourceTree = ""; }; 71 | 7C95B2821792B3A700376DFE /* ACPButtonsTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ACPButtonsTests.m; sourceTree = ""; }; 72 | 7C95B29217930A3D00376DFE /* cont-bt_highlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cont-bt_highlighted.png"; sourceTree = ""; }; 73 | 7C95B29317930A3D00376DFE /* cont-bt_highlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cont-bt_highlighted@2x.png"; sourceTree = ""; }; 74 | 7C95B29417930A3D00376DFE /* cont-bt_normal.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cont-bt_normal.png"; sourceTree = ""; }; 75 | 7C95B29517930A3D00376DFE /* cont-bt_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cont-bt_normal@2x.png"; sourceTree = ""; }; 76 | 7C95B29A17930CF600376DFE /* alert-gray-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "alert-gray-button.png"; sourceTree = ""; }; 77 | 7C95B29B17930CF600376DFE /* alert-gray-button@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "alert-gray-button@2x.png"; sourceTree = ""; }; 78 | 7C9BB2DA1795F034004CFB77 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg.png; sourceTree = ""; }; 79 | 7C9BB2DB1795F034004CFB77 /* bg@2X.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "bg@2X.png"; sourceTree = ""; }; 80 | 7C9BB2DE1795FBE7004CFB77 /* ACPButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ACPButton.h; sourceTree = SOURCE_ROOT; }; 81 | 7C9BB2DF1795FBE7004CFB77 /* ACPButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ACPButton.m; sourceTree = SOURCE_ROOT; }; 82 | /* End PBXFileReference section */ 83 | 84 | /* Begin PBXFrameworksBuildPhase section */ 85 | 7C95B2481792B3A600376DFE /* Frameworks */ = { 86 | isa = PBXFrameworksBuildPhase; 87 | buildActionMask = 2147483647; 88 | files = ( 89 | 7C95B24F1792B3A600376DFE /* UIKit.framework in Frameworks */, 90 | 7C95B2511792B3A600376DFE /* Foundation.framework in Frameworks */, 91 | 7C95B2531792B3A600376DFE /* CoreGraphics.framework in Frameworks */, 92 | ); 93 | runOnlyForDeploymentPostprocessing = 0; 94 | }; 95 | 7C95B2701792B3A700376DFE /* Frameworks */ = { 96 | isa = PBXFrameworksBuildPhase; 97 | buildActionMask = 2147483647; 98 | files = ( 99 | 7C95B2761792B3A700376DFE /* SenTestingKit.framework in Frameworks */, 100 | 7C95B2771792B3A700376DFE /* UIKit.framework in Frameworks */, 101 | 7C95B2781792B3A700376DFE /* Foundation.framework in Frameworks */, 102 | ); 103 | runOnlyForDeploymentPostprocessing = 0; 104 | }; 105 | /* End PBXFrameworksBuildPhase section */ 106 | 107 | /* Begin PBXGroup section */ 108 | 7C95B2421792B3A600376DFE = { 109 | isa = PBXGroup; 110 | children = ( 111 | 7C95B2541792B3A600376DFE /* ACPButtons */, 112 | 7C95B27B1792B3A700376DFE /* ACPButtonsTests */, 113 | 7C95B24D1792B3A600376DFE /* Frameworks */, 114 | 7C95B24C1792B3A600376DFE /* Products */, 115 | ); 116 | sourceTree = ""; 117 | }; 118 | 7C95B24C1792B3A600376DFE /* Products */ = { 119 | isa = PBXGroup; 120 | children = ( 121 | 7C95B24B1792B3A600376DFE /* ACPButtons.app */, 122 | 7C95B2741792B3A700376DFE /* ACPButtonsTests.octest */, 123 | ); 124 | name = Products; 125 | sourceTree = ""; 126 | }; 127 | 7C95B24D1792B3A600376DFE /* Frameworks */ = { 128 | isa = PBXGroup; 129 | children = ( 130 | 7C95B24E1792B3A600376DFE /* UIKit.framework */, 131 | 7C95B2501792B3A600376DFE /* Foundation.framework */, 132 | 7C95B2521792B3A600376DFE /* CoreGraphics.framework */, 133 | 7C95B2751792B3A700376DFE /* SenTestingKit.framework */, 134 | ); 135 | name = Frameworks; 136 | sourceTree = ""; 137 | }; 138 | 7C95B2541792B3A600376DFE /* ACPButtons */ = { 139 | isa = PBXGroup; 140 | children = ( 141 | 7C9BB2DE1795FBE7004CFB77 /* ACPButton.h */, 142 | 7C9BB2DF1795FBE7004CFB77 /* ACPButton.m */, 143 | 7C95B29117930A3D00376DFE /* Images */, 144 | 7C95B25D1792B3A700376DFE /* AppDelegate.h */, 145 | 7C95B25E1792B3A700376DFE /* AppDelegate.m */, 146 | 7C95B2661792B3A700376DFE /* MainStoryboard_iPhone.storyboard */, 147 | 7C95B2691792B3A700376DFE /* MainStoryboard_iPad.storyboard */, 148 | 7C95B26C1792B3A700376DFE /* ViewController.h */, 149 | 7C95B26D1792B3A700376DFE /* ViewController.m */, 150 | 7C95B2551792B3A700376DFE /* Supporting Files */, 151 | ); 152 | path = ACPButtons; 153 | sourceTree = ""; 154 | }; 155 | 7C95B2551792B3A700376DFE /* Supporting Files */ = { 156 | isa = PBXGroup; 157 | children = ( 158 | 7C95B2561792B3A700376DFE /* ACPButtons-Info.plist */, 159 | 7C95B2571792B3A700376DFE /* InfoPlist.strings */, 160 | 7C95B25A1792B3A700376DFE /* main.m */, 161 | 7C95B25C1792B3A700376DFE /* ACPButtons-Prefix.pch */, 162 | 7C95B2601792B3A700376DFE /* Default.png */, 163 | 7C95B2621792B3A700376DFE /* Default@2x.png */, 164 | 7C95B2641792B3A700376DFE /* Default-568h@2x.png */, 165 | ); 166 | name = "Supporting Files"; 167 | sourceTree = ""; 168 | }; 169 | 7C95B27B1792B3A700376DFE /* ACPButtonsTests */ = { 170 | isa = PBXGroup; 171 | children = ( 172 | 7C95B2811792B3A700376DFE /* ACPButtonsTests.h */, 173 | 7C95B2821792B3A700376DFE /* ACPButtonsTests.m */, 174 | 7C95B27C1792B3A700376DFE /* Supporting Files */, 175 | ); 176 | path = ACPButtonsTests; 177 | sourceTree = ""; 178 | }; 179 | 7C95B27C1792B3A700376DFE /* Supporting Files */ = { 180 | isa = PBXGroup; 181 | children = ( 182 | 7C95B27D1792B3A700376DFE /* ACPButtonsTests-Info.plist */, 183 | 7C95B27E1792B3A700376DFE /* InfoPlist.strings */, 184 | ); 185 | name = "Supporting Files"; 186 | sourceTree = ""; 187 | }; 188 | 7C95B29117930A3D00376DFE /* Images */ = { 189 | isa = PBXGroup; 190 | children = ( 191 | 7C9BB2DA1795F034004CFB77 /* bg.png */, 192 | 7C9BB2DB1795F034004CFB77 /* bg@2X.png */, 193 | 7C95B29A17930CF600376DFE /* alert-gray-button.png */, 194 | 7C95B29B17930CF600376DFE /* alert-gray-button@2x.png */, 195 | 7C95B29217930A3D00376DFE /* cont-bt_highlighted.png */, 196 | 7C95B29317930A3D00376DFE /* cont-bt_highlighted@2x.png */, 197 | 7C95B29417930A3D00376DFE /* cont-bt_normal.png */, 198 | 7C95B29517930A3D00376DFE /* cont-bt_normal@2x.png */, 199 | ); 200 | path = Images; 201 | sourceTree = ""; 202 | }; 203 | /* End PBXGroup section */ 204 | 205 | /* Begin PBXNativeTarget section */ 206 | 7C95B24A1792B3A600376DFE /* ACPButtons */ = { 207 | isa = PBXNativeTarget; 208 | buildConfigurationList = 7C95B2861792B3A700376DFE /* Build configuration list for PBXNativeTarget "ACPButtons" */; 209 | buildPhases = ( 210 | 7C95B2471792B3A600376DFE /* Sources */, 211 | 7C95B2481792B3A600376DFE /* Frameworks */, 212 | 7C95B2491792B3A600376DFE /* Resources */, 213 | ); 214 | buildRules = ( 215 | ); 216 | dependencies = ( 217 | ); 218 | name = ACPButtons; 219 | productName = ACPButtons; 220 | productReference = 7C95B24B1792B3A600376DFE /* ACPButtons.app */; 221 | productType = "com.apple.product-type.application"; 222 | }; 223 | 7C95B2731792B3A700376DFE /* ACPButtonsTests */ = { 224 | isa = PBXNativeTarget; 225 | buildConfigurationList = 7C95B2891792B3A700376DFE /* Build configuration list for PBXNativeTarget "ACPButtonsTests" */; 226 | buildPhases = ( 227 | 7C95B26F1792B3A700376DFE /* Sources */, 228 | 7C95B2701792B3A700376DFE /* Frameworks */, 229 | 7C95B2711792B3A700376DFE /* Resources */, 230 | 7C95B2721792B3A700376DFE /* ShellScript */, 231 | ); 232 | buildRules = ( 233 | ); 234 | dependencies = ( 235 | 7C95B27A1792B3A700376DFE /* PBXTargetDependency */, 236 | ); 237 | name = ACPButtonsTests; 238 | productName = ACPButtonsTests; 239 | productReference = 7C95B2741792B3A700376DFE /* ACPButtonsTests.octest */; 240 | productType = "com.apple.product-type.bundle"; 241 | }; 242 | /* End PBXNativeTarget section */ 243 | 244 | /* Begin PBXProject section */ 245 | 7C95B2431792B3A600376DFE /* Project object */ = { 246 | isa = PBXProject; 247 | attributes = { 248 | LastUpgradeCheck = 0460; 249 | ORGANIZATIONNAME = ACP; 250 | }; 251 | buildConfigurationList = 7C95B2461792B3A600376DFE /* Build configuration list for PBXProject "ACPButtons" */; 252 | compatibilityVersion = "Xcode 3.2"; 253 | developmentRegion = English; 254 | hasScannedForEncodings = 0; 255 | knownRegions = ( 256 | en, 257 | ); 258 | mainGroup = 7C95B2421792B3A600376DFE; 259 | productRefGroup = 7C95B24C1792B3A600376DFE /* Products */; 260 | projectDirPath = ""; 261 | projectRoot = ""; 262 | targets = ( 263 | 7C95B24A1792B3A600376DFE /* ACPButtons */, 264 | 7C95B2731792B3A700376DFE /* ACPButtonsTests */, 265 | ); 266 | }; 267 | /* End PBXProject section */ 268 | 269 | /* Begin PBXResourcesBuildPhase section */ 270 | 7C95B2491792B3A600376DFE /* Resources */ = { 271 | isa = PBXResourcesBuildPhase; 272 | buildActionMask = 2147483647; 273 | files = ( 274 | 7C95B2591792B3A700376DFE /* InfoPlist.strings in Resources */, 275 | 7C95B2611792B3A700376DFE /* Default.png in Resources */, 276 | 7C95B2631792B3A700376DFE /* Default@2x.png in Resources */, 277 | 7C95B2651792B3A700376DFE /* Default-568h@2x.png in Resources */, 278 | 7C95B2681792B3A700376DFE /* MainStoryboard_iPhone.storyboard in Resources */, 279 | 7C95B26B1792B3A700376DFE /* MainStoryboard_iPad.storyboard in Resources */, 280 | 7C95B29617930A3D00376DFE /* cont-bt_highlighted.png in Resources */, 281 | 7C95B29717930A3D00376DFE /* cont-bt_highlighted@2x.png in Resources */, 282 | 7C95B29817930A3D00376DFE /* cont-bt_normal.png in Resources */, 283 | 7C95B29917930A3D00376DFE /* cont-bt_normal@2x.png in Resources */, 284 | 7C95B29C17930CF600376DFE /* alert-gray-button.png in Resources */, 285 | 7C95B29D17930CF600376DFE /* alert-gray-button@2x.png in Resources */, 286 | 7C9BB2DC1795F034004CFB77 /* bg.png in Resources */, 287 | 7C9BB2DD1795F034004CFB77 /* bg@2X.png in Resources */, 288 | ); 289 | runOnlyForDeploymentPostprocessing = 0; 290 | }; 291 | 7C95B2711792B3A700376DFE /* Resources */ = { 292 | isa = PBXResourcesBuildPhase; 293 | buildActionMask = 2147483647; 294 | files = ( 295 | 7C95B2801792B3A700376DFE /* InfoPlist.strings in Resources */, 296 | ); 297 | runOnlyForDeploymentPostprocessing = 0; 298 | }; 299 | /* End PBXResourcesBuildPhase section */ 300 | 301 | /* Begin PBXShellScriptBuildPhase section */ 302 | 7C95B2721792B3A700376DFE /* ShellScript */ = { 303 | isa = PBXShellScriptBuildPhase; 304 | buildActionMask = 2147483647; 305 | files = ( 306 | ); 307 | inputPaths = ( 308 | ); 309 | outputPaths = ( 310 | ); 311 | runOnlyForDeploymentPostprocessing = 0; 312 | shellPath = /bin/sh; 313 | shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; 314 | }; 315 | /* End PBXShellScriptBuildPhase section */ 316 | 317 | /* Begin PBXSourcesBuildPhase section */ 318 | 7C95B2471792B3A600376DFE /* Sources */ = { 319 | isa = PBXSourcesBuildPhase; 320 | buildActionMask = 2147483647; 321 | files = ( 322 | 7C95B25B1792B3A700376DFE /* main.m in Sources */, 323 | 7C95B25F1792B3A700376DFE /* AppDelegate.m in Sources */, 324 | 7C95B26E1792B3A700376DFE /* ViewController.m in Sources */, 325 | 7C9BB2E01795FBE7004CFB77 /* ACPButton.m in Sources */, 326 | ); 327 | runOnlyForDeploymentPostprocessing = 0; 328 | }; 329 | 7C95B26F1792B3A700376DFE /* Sources */ = { 330 | isa = PBXSourcesBuildPhase; 331 | buildActionMask = 2147483647; 332 | files = ( 333 | 7C95B2831792B3A700376DFE /* ACPButtonsTests.m in Sources */, 334 | ); 335 | runOnlyForDeploymentPostprocessing = 0; 336 | }; 337 | /* End PBXSourcesBuildPhase section */ 338 | 339 | /* Begin PBXTargetDependency section */ 340 | 7C95B27A1792B3A700376DFE /* PBXTargetDependency */ = { 341 | isa = PBXTargetDependency; 342 | target = 7C95B24A1792B3A600376DFE /* ACPButtons */; 343 | targetProxy = 7C95B2791792B3A700376DFE /* PBXContainerItemProxy */; 344 | }; 345 | /* End PBXTargetDependency section */ 346 | 347 | /* Begin PBXVariantGroup section */ 348 | 7C95B2571792B3A700376DFE /* InfoPlist.strings */ = { 349 | isa = PBXVariantGroup; 350 | children = ( 351 | 7C95B2581792B3A700376DFE /* en */, 352 | ); 353 | name = InfoPlist.strings; 354 | sourceTree = ""; 355 | }; 356 | 7C95B2661792B3A700376DFE /* MainStoryboard_iPhone.storyboard */ = { 357 | isa = PBXVariantGroup; 358 | children = ( 359 | 7C95B2671792B3A700376DFE /* en */, 360 | ); 361 | name = MainStoryboard_iPhone.storyboard; 362 | sourceTree = ""; 363 | }; 364 | 7C95B2691792B3A700376DFE /* MainStoryboard_iPad.storyboard */ = { 365 | isa = PBXVariantGroup; 366 | children = ( 367 | 7C95B26A1792B3A700376DFE /* en */, 368 | ); 369 | name = MainStoryboard_iPad.storyboard; 370 | sourceTree = ""; 371 | }; 372 | 7C95B27E1792B3A700376DFE /* InfoPlist.strings */ = { 373 | isa = PBXVariantGroup; 374 | children = ( 375 | 7C95B27F1792B3A700376DFE /* en */, 376 | ); 377 | name = InfoPlist.strings; 378 | sourceTree = ""; 379 | }; 380 | /* End PBXVariantGroup section */ 381 | 382 | /* Begin XCBuildConfiguration section */ 383 | 7C95B2841792B3A700376DFE /* Debug */ = { 384 | isa = XCBuildConfiguration; 385 | buildSettings = { 386 | ALWAYS_SEARCH_USER_PATHS = NO; 387 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 388 | CLANG_CXX_LIBRARY = "libc++"; 389 | CLANG_ENABLE_OBJC_ARC = YES; 390 | CLANG_WARN_CONSTANT_CONVERSION = YES; 391 | CLANG_WARN_EMPTY_BODY = YES; 392 | CLANG_WARN_ENUM_CONVERSION = YES; 393 | CLANG_WARN_INT_CONVERSION = YES; 394 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 395 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 396 | COPY_PHASE_STRIP = NO; 397 | GCC_C_LANGUAGE_STANDARD = gnu99; 398 | GCC_DYNAMIC_NO_PIC = NO; 399 | GCC_OPTIMIZATION_LEVEL = 0; 400 | GCC_PREPROCESSOR_DEFINITIONS = ( 401 | "DEBUG=1", 402 | "$(inherited)", 403 | ); 404 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 405 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 406 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 407 | GCC_WARN_UNUSED_VARIABLE = YES; 408 | IPHONEOS_DEPLOYMENT_TARGET = 6.1; 409 | ONLY_ACTIVE_ARCH = YES; 410 | SDKROOT = iphoneos; 411 | TARGETED_DEVICE_FAMILY = "1,2"; 412 | }; 413 | name = Debug; 414 | }; 415 | 7C95B2851792B3A700376DFE /* Release */ = { 416 | isa = XCBuildConfiguration; 417 | buildSettings = { 418 | ALWAYS_SEARCH_USER_PATHS = NO; 419 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 420 | CLANG_CXX_LIBRARY = "libc++"; 421 | CLANG_ENABLE_OBJC_ARC = YES; 422 | CLANG_WARN_CONSTANT_CONVERSION = YES; 423 | CLANG_WARN_EMPTY_BODY = YES; 424 | CLANG_WARN_ENUM_CONVERSION = YES; 425 | CLANG_WARN_INT_CONVERSION = YES; 426 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 427 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 428 | COPY_PHASE_STRIP = YES; 429 | GCC_C_LANGUAGE_STANDARD = gnu99; 430 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 431 | GCC_WARN_UNINITIALIZED_AUTOS = YES; 432 | GCC_WARN_UNUSED_VARIABLE = YES; 433 | IPHONEOS_DEPLOYMENT_TARGET = 6.1; 434 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 435 | SDKROOT = iphoneos; 436 | TARGETED_DEVICE_FAMILY = "1,2"; 437 | VALIDATE_PRODUCT = YES; 438 | }; 439 | name = Release; 440 | }; 441 | 7C95B2871792B3A700376DFE /* Debug */ = { 442 | isa = XCBuildConfiguration; 443 | buildSettings = { 444 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 445 | GCC_PREFIX_HEADER = "ACPButtons/ACPButtons-Prefix.pch"; 446 | INFOPLIST_FILE = "ACPButtons/ACPButtons-Info.plist"; 447 | PRODUCT_NAME = "$(TARGET_NAME)"; 448 | WRAPPER_EXTENSION = app; 449 | }; 450 | name = Debug; 451 | }; 452 | 7C95B2881792B3A700376DFE /* Release */ = { 453 | isa = XCBuildConfiguration; 454 | buildSettings = { 455 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 456 | GCC_PREFIX_HEADER = "ACPButtons/ACPButtons-Prefix.pch"; 457 | INFOPLIST_FILE = "ACPButtons/ACPButtons-Info.plist"; 458 | PRODUCT_NAME = "$(TARGET_NAME)"; 459 | WRAPPER_EXTENSION = app; 460 | }; 461 | name = Release; 462 | }; 463 | 7C95B28A1792B3A700376DFE /* Debug */ = { 464 | isa = XCBuildConfiguration; 465 | buildSettings = { 466 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ACPButtons.app/ACPButtons"; 467 | FRAMEWORK_SEARCH_PATHS = ( 468 | "\"$(SDKROOT)/Developer/Library/Frameworks\"", 469 | "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", 470 | ); 471 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 472 | GCC_PREFIX_HEADER = "ACPButtons/ACPButtons-Prefix.pch"; 473 | INFOPLIST_FILE = "ACPButtonsTests/ACPButtonsTests-Info.plist"; 474 | PRODUCT_NAME = "$(TARGET_NAME)"; 475 | TEST_HOST = "$(BUNDLE_LOADER)"; 476 | WRAPPER_EXTENSION = octest; 477 | }; 478 | name = Debug; 479 | }; 480 | 7C95B28B1792B3A700376DFE /* Release */ = { 481 | isa = XCBuildConfiguration; 482 | buildSettings = { 483 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ACPButtons.app/ACPButtons"; 484 | FRAMEWORK_SEARCH_PATHS = ( 485 | "\"$(SDKROOT)/Developer/Library/Frameworks\"", 486 | "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", 487 | ); 488 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 489 | GCC_PREFIX_HEADER = "ACPButtons/ACPButtons-Prefix.pch"; 490 | INFOPLIST_FILE = "ACPButtonsTests/ACPButtonsTests-Info.plist"; 491 | PRODUCT_NAME = "$(TARGET_NAME)"; 492 | TEST_HOST = "$(BUNDLE_LOADER)"; 493 | WRAPPER_EXTENSION = octest; 494 | }; 495 | name = Release; 496 | }; 497 | /* End XCBuildConfiguration section */ 498 | 499 | /* Begin XCConfigurationList section */ 500 | 7C95B2461792B3A600376DFE /* Build configuration list for PBXProject "ACPButtons" */ = { 501 | isa = XCConfigurationList; 502 | buildConfigurations = ( 503 | 7C95B2841792B3A700376DFE /* Debug */, 504 | 7C95B2851792B3A700376DFE /* Release */, 505 | ); 506 | defaultConfigurationIsVisible = 0; 507 | defaultConfigurationName = Release; 508 | }; 509 | 7C95B2861792B3A700376DFE /* Build configuration list for PBXNativeTarget "ACPButtons" */ = { 510 | isa = XCConfigurationList; 511 | buildConfigurations = ( 512 | 7C95B2871792B3A700376DFE /* Debug */, 513 | 7C95B2881792B3A700376DFE /* Release */, 514 | ); 515 | defaultConfigurationIsVisible = 0; 516 | defaultConfigurationName = Release; 517 | }; 518 | 7C95B2891792B3A700376DFE /* Build configuration list for PBXNativeTarget "ACPButtonsTests" */ = { 519 | isa = XCConfigurationList; 520 | buildConfigurations = ( 521 | 7C95B28A1792B3A700376DFE /* Debug */, 522 | 7C95B28B1792B3A700376DFE /* Release */, 523 | ); 524 | defaultConfigurationIsVisible = 0; 525 | defaultConfigurationName = Release; 526 | }; 527 | /* End XCConfigurationList section */ 528 | }; 529 | rootObject = 7C95B2431792B3A600376DFE /* Project object */; 530 | } 531 | --------------------------------------------------------------------------------