Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

First Commit

  • Loading branch information...
commit 7b8a72b9c6a91a7e50723ba18af11330c3c392d2 0 parents
jvanmetre authored
15 .gitignore
@@ -0,0 +1,15 @@
+# xcode noise
+build/*
+*.pbxuser
+*.mode1v3
+xcuserdata
+
+# auto git version noise
+InfoPlist.h
+
+# old skool
+.svn
+
+# osx noise
+.DS_Store
+profile
19 ICBPrettyTableView/ICBAppDelegate.h
@@ -0,0 +1,19 @@
+//
+// ICBAppDelegate.h
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class ICBTableViewController;
+
+@interface ICBAppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+@property (strong, nonatomic) ICBTableViewController *viewController;
+
+@end
74 ICBPrettyTableView/ICBAppDelegate.m
@@ -0,0 +1,74 @@
+//
+// ICBAppDelegate.m
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 ELC Technologies. All rights reserved.
+//
+
+#import "ICBAppDelegate.h"
+
+#import "ICBTableViewController.h"
+
+@implementation ICBAppDelegate
+
+@synthesize window = _window;
+@synthesize viewController = _viewController;
+
+- (void)dealloc
+{
+ [_window release];
+ [_viewController release];
+ [super dealloc];
+}
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+ self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
+ // Override point for customization after application launch.
+ self.viewController = [[[ICBTableViewController alloc] initWithStyle:UITableViewStylePlain] autorelease];
+ self.window.rootViewController = self.viewController;
+ [self.window makeKeyAndVisible];
+ return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+ /*
+ 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.
+ 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.
+ */
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+ /*
+ 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.
+ If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+ */
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+ /*
+ 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.
+ */
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+ /*
+ 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.
+ */
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+ /*
+ Called when the application is about to terminate.
+ Save data if appropriate.
+ See also applicationDidEnterBackground:.
+ */
+}
+
+@end
24 ICBPrettyTableView/ICBTableViewCell.h
@@ -0,0 +1,24 @@
+//
+// ICBTableViewCell.h
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <AddressBook/AddressBook.h>
+
+@interface ICBTableViewCell : UITableViewCell
+
+@property (nonatomic, retain) NSString *firstName;
+@property (nonatomic, retain) NSString *lastName;
+@property (nonatomic, retain) NSString *email;
+@property (nonatomic, retain) NSString *phone;
+//@property (nonatomic, retain) UIImage *image;
+@property (nonatomic, retain) NSString *address;
+
+- (void)setRecord:(ABRecordRef)record;
+- (void)setDictionary:(NSDictionary *)dict;
+
+@end
142 ICBPrettyTableView/ICBTableViewCell.m
@@ -0,0 +1,142 @@
+//
+// ICBTableViewCell.m
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 ELC Technologies. All rights reserved.
+//
+
+#import "ICBTableViewCell.h"
+
+@implementation ICBTableViewCell
+
+@synthesize firstName = _firstName;
+@synthesize lastName = _lastName;
+@synthesize email = _email;
+@synthesize phone = _phone;
+@synthesize address = _address;
+
+- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
+{
+ self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+ if (self) {
+ self.selectionStyle = UITableViewCellSelectionStyleNone;
+ }
+ return self;
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated
+{
+ [super setSelected:selected animated:animated];
+
+ // Configure the view for the selected state
+}
+
+- (NSString *)getFirstEmail:(ABRecordRef)record
+{
+ ABMultiValueRef valueRef = ABRecordCopyValue(record, kABPersonEmailProperty);
+ NSInteger count = ABMultiValueGetCount(valueRef);
+ if (count > 0) {
+ NSString *string = (NSString *)ABMultiValueCopyValueAtIndex(valueRef, 0);
+ CFRelease(valueRef);
+ return [string autorelease];
+ } else {
+ CFRelease(valueRef);
+ return nil;
+ }
+}
+
+- (NSString *)getFirstPhone:(ABRecordRef)record
+{
+ ABMultiValueRef valueRef = ABRecordCopyValue(record, kABPersonPhoneProperty);
+ NSInteger count = ABMultiValueGetCount(valueRef);
+ if (count > 0) {
+ NSString *string = (NSString *)ABMultiValueCopyValueAtIndex(valueRef, 0);
+ CFRelease(valueRef);
+ return [string autorelease];
+ } else {
+ CFRelease(valueRef);
+ return nil;
+ }
+}
+
+- (void)setRecord:(ABRecordRef)record
+{
+ self.firstName = [(NSString *)ABRecordCopyValue(record, kABPersonFirstNameProperty) autorelease];
+ self.lastName = [(NSString *)ABRecordCopyValue(record, kABPersonLastNameProperty) autorelease];
+ self.email = [self getFirstEmail:record];
+ self.phone = [self getFirstPhone:record];
+ [self setNeedsDisplay];
+}
+
+- (void)setDictionary:(NSDictionary *)dict
+{
+ self.firstName = [dict objectForKey:@"firstName"];
+ self.lastName = [dict objectForKey:@"lastName"];
+ self.email = [dict objectForKey:@"email"];
+ self.phone = [dict objectForKey:@"phone"];
+ [self setNeedsDisplay];
+}
+
+- (void)drawRect:(CGRect)rect
+{
+ CGContextRef ctx = UIGraphicsGetCurrentContext();
+
+ CGContextClipToRect(ctx, rect);
+ //If even
+ if (((self.tag % 2) == 0)) {
+ CGContextSetFillColorWithColor(ctx, [UIColor colorWithWhite:0.1f alpha:1.f].CGColor);
+ } else {
+ CGContextSetFillColorWithColor(ctx, [UIColor colorWithWhite:0.15f alpha:1.f].CGColor);
+ }
+
+ CGContextFillRect(ctx, rect);
+
+ //Vertically center our text, if no email
+ BOOL isCentered = (self.email == nil);
+
+ CGRect tempRect;
+ CGFloat midY = CGRectGetMidY(rect);
+ [[UIColor whiteColor] set];
+ UIFont *defaultFont = [UIFont systemFontOfSize:16];
+ CGSize size = [self.firstName sizeWithFont:defaultFont];
+ if (isCentered == NO) {
+ tempRect = CGRectMake(5, 0, size.width, size.height);
+ } else {
+ tempRect = CGRectMake(5, midY - size.height/2, size.width, size.height);
+ }
+ [self.firstName drawInRect:tempRect withFont:defaultFont];
+
+ [[UIColor lightGrayColor] set];
+ size = [self.lastName sizeWithFont:defaultFont];
+ if (isCentered == NO) {
+ tempRect = CGRectMake(CGRectGetMaxX(tempRect)+5, 0, size.width, size.height);
+ } else {
+ tempRect = CGRectMake(CGRectGetMaxX(tempRect)+5, midY - size.height/2, size.width, size.height);
+ }
+ [self.lastName drawInRect:tempRect withFont:defaultFont];
+
+ if (self.phone != nil) {
+ [[UIColor redColor] set];
+ size = [self.phone sizeWithFont:defaultFont];
+ CGFloat end = CGRectGetMaxX(tempRect) + size.width;
+ if (end > rect.size.width) {
+ size.width = CGRectGetMaxX(rect) - CGRectGetMaxX(tempRect) - 10; //-10 so that we get 5 from the end of last name, and 5 from the end of rect
+ }
+ if (isCentered == NO) {
+ tempRect = CGRectMake(CGRectGetMaxX(rect) - size.width - 5, 0, size.width, size.height);
+ } else {
+ tempRect = CGRectMake(CGRectGetMaxX(rect) - size.width - 5, midY - size.height/2, size.width, size.height);
+ }
+ [self.phone drawInRect:tempRect withFont:defaultFont lineBreakMode:UILineBreakModeTailTruncation];
+ }
+
+ if (self.email != nil) {
+ [[UIColor blueColor] set];
+ size = [self.email sizeWithFont:defaultFont];
+ tempRect = CGRectMake(5, midY, size.width, size.height);
+ [self.email drawInRect:tempRect withFont:defaultFont];
+ }
+}
+
+@end
19 ICBPrettyTableView/ICBTableViewController.h
@@ -0,0 +1,19 @@
+//
+// ICBViewController.h
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 ELC Technologies. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <AddressBook/AddressBook.h>
+
+@interface ICBTableViewController : UITableViewController
+{
+ ABAddressBookRef _addressBook;
+}
+
+@property (nonatomic, retain) NSArray *contacts;
+
+@end
117 ICBPrettyTableView/ICBTableViewController.m
@@ -0,0 +1,117 @@
+//
+// ICBViewController.m
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 ELC Technologies. All rights reserved.
+//
+
+#import "ICBTableViewController.h"
+#import "ICBTableViewCell.h"
+
+@implementation ICBTableViewController
+
+@synthesize contacts = _contacts;
+
+- (void)didReceiveMemoryWarning
+{
+ [super didReceiveMemoryWarning];
+ // Release any cached data, images, etc that aren't in use.
+}
+
+- (void)dealloc
+{
+ CFRelease(_addressBook);
+ [_contacts release];
+ _contacts = nil;
+}
+
+#pragma mark - View lifecycle
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+ self.tableView.backgroundColor = UIColor.blackColor;
+ self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
+
+ _addressBook = ABAddressBookCreate();
+ NSArray *tempArray = [(NSArray *)ABAddressBookCopyArrayOfAllPeople(_addressBook) autorelease];
+ tempArray = [tempArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
+ NSString *name1 = (NSString *)ABRecordCopyCompositeName((ABRecordRef)obj1);
+ NSString *name2 = (NSString *)ABRecordCopyCompositeName((ABRecordRef)obj2);
+ [name1 autorelease];
+ [name2 autorelease];
+ return [name1 compare:name2];
+ }];
+
+ if ([tempArray count] > 0) {
+ self.contacts = tempArray;
+ } else {
+ NSMutableArray *tempMutableArray = [NSMutableArray arrayWithCapacity:100];
+ for (int i = 0; i < 100; ++i) {
+ NSMutableDictionary *dict = [NSMutableDictionary dictionary];
+ if ((i % 9) != 0) {
+ [dict setObject:[NSString stringWithFormat:@"FirstName%d", i] forKey:@"firstName"];
+ }
+ if ((i % 3) == 0) {
+ [dict setObject:[NSString stringWithFormat:@"LastName%d", i] forKey:@"lastName"];
+ }
+ if ((i % 3) == 0 && (i % 2) == 0) {
+ [dict setObject:[NSString stringWithFormat:@"emailTest%d@test%d.com", i, i] forKey:@"email"];
+ }
+ if ((i % 7) == 0) {
+ NSString *string = [NSString stringWithFormat:@"%d", i];
+ while ([string length] < 10) {
+ string = [string stringByAppendingFormat:@"%@", string];
+ }
+ [dict setObject:string forKey:@"phone"];
+ }
+ [tempMutableArray addObject:dict];
+ }
+ self.contacts = tempMutableArray;
+ }
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ // Return YES for supported orientations
+ return YES;
+}
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+ // Return the number of sections.
+ return 1;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+ return [self.contacts count];
+}
+
+// Customize the appearance of table view cells.
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+
+ static NSString *CellIdentifier = @"ICBTableViewCellIdentifier";
+
+ ICBTableViewCell *cell = (ICBTableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
+ if (cell == nil) {
+ cell = [[[ICBTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
+// cell.delegate = self;
+ cell.textLabel.textColor = UIColor.whiteColor;
+ }
+ cell.tag = indexPath.row;
+
+ NSObject *object = [self.contacts objectAtIndex:indexPath.row];
+ if ([object isKindOfClass:NSDictionary.class]) {
+ [cell setDictionary:(NSDictionary *)object];
+ } else {
+ [cell setRecord:(ABRecordRef)object];
+ }
+
+ return cell;
+}
+
+@end
37 ICBPrettyTableView/ICB_PrettyTableView-Info.plist
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFiles</key>
+ <array/>
+ <key>CFBundleIdentifier</key>
+ <string>com.elctech.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>UISupportedInterfaceOrientations</key>
+ <array>
+ <string>UIInterfaceOrientationPortrait</string>
+ <string>UIInterfaceOrientationLandscapeLeft</string>
+ <string>UIInterfaceOrientationLandscapeRight</string>
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
+ </array>
+</dict>
+</plist>
14 ICBPrettyTableView/ICB_PrettyTableView-Prefix.pch
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'ICBPrettyTableView' target in the 'ICBPrettyTableView' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_4_0
+#warning "This project uses features only available in iOS SDK 4.0 and later."
+#endif
+
+#ifdef __OBJC__
+ #import <UIKit/UIKit.h>
+ #import <Foundation/Foundation.h>
+#endif
2  ICBPrettyTableView/en.lproj/InfoPlist.strings
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
18 ICBPrettyTableView/main.m
@@ -0,0 +1,18 @@
+//
+// main.m
+// ICBPrettyTableView
+//
+// Created by James Van Metre on 11/17/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "ICBAppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+ @autoreleasepool {
+ return UIApplicationMain(argc, argv, nil, NSStringFromClass([ICBAppDelegate class]));
+ }
+}
281 ICB_PrettyTableView.xcodeproj/project.pbxproj
@@ -0,0 +1,281 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1AD37DCD1475936F006E9D1B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AD37DCC1475936F006E9D1B /* UIKit.framework */; };
+ 1AD37DCF1475936F006E9D1B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AD37DCE1475936F006E9D1B /* Foundation.framework */; };
+ 1AD37DD11475936F006E9D1B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AD37DD01475936F006E9D1B /* CoreGraphics.framework */; };
+ 1AD37DD71475936F006E9D1B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1AD37DD51475936F006E9D1B /* InfoPlist.strings */; };
+ 1AD37DD91475936F006E9D1B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD37DD81475936F006E9D1B /* main.m */; };
+ 1AD37DDD1475936F006E9D1B /* ICBAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD37DDC1475936F006E9D1B /* ICBAppDelegate.m */; };
+ 1AD37DE01475936F006E9D1B /* ICBTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD37DDF1475936F006E9D1B /* ICBTableViewController.m */; };
+ 1AD37DEE14759594006E9D1B /* ICBTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AD37DED14759594006E9D1B /* ICBTableViewCell.m */; };
+ 1AD37DF51475A4E8006E9D1B /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1AD37DF41475A4E8006E9D1B /* AddressBook.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 1AD37DC81475936F006E9D1B /* ICB_PrettyTableView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ICB_PrettyTableView.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1AD37DCC1475936F006E9D1B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 1AD37DCE1475936F006E9D1B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 1AD37DD01475936F006E9D1B /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ 1AD37DD41475936F006E9D1B /* ICB_PrettyTableView-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ICB_PrettyTableView-Info.plist"; sourceTree = "<group>"; };
+ 1AD37DD61475936F006E9D1B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 1AD37DD81475936F006E9D1B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ 1AD37DDA1475936F006E9D1B /* ICB_PrettyTableView-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ICB_PrettyTableView-Prefix.pch"; sourceTree = "<group>"; };
+ 1AD37DDB1475936F006E9D1B /* ICBAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ICBAppDelegate.h; sourceTree = "<group>"; };
+ 1AD37DDC1475936F006E9D1B /* ICBAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ICBAppDelegate.m; sourceTree = "<group>"; };
+ 1AD37DDE1475936F006E9D1B /* ICBTableViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ICBTableViewController.h; sourceTree = "<group>"; };
+ 1AD37DDF1475936F006E9D1B /* ICBTableViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ICBTableViewController.m; sourceTree = "<group>"; };
+ 1AD37DEC14759594006E9D1B /* ICBTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ICBTableViewCell.h; sourceTree = "<group>"; };
+ 1AD37DED14759594006E9D1B /* ICBTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ICBTableViewCell.m; sourceTree = "<group>"; };
+ 1AD37DF41475A4E8006E9D1B /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 1AD37DC51475936F006E9D1B /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1AD37DF51475A4E8006E9D1B /* AddressBook.framework in Frameworks */,
+ 1AD37DCD1475936F006E9D1B /* UIKit.framework in Frameworks */,
+ 1AD37DCF1475936F006E9D1B /* Foundation.framework in Frameworks */,
+ 1AD37DD11475936F006E9D1B /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 1AD37DBD1475936F006E9D1B = {
+ isa = PBXGroup;
+ children = (
+ 1AD37DF41475A4E8006E9D1B /* AddressBook.framework */,
+ 1AD37DD21475936F006E9D1B /* ICB_PrettyTableView */,
+ 1AD37DCB1475936F006E9D1B /* Frameworks */,
+ 1AD37DC91475936F006E9D1B /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ 1AD37DC91475936F006E9D1B /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 1AD37DC81475936F006E9D1B /* ICB_PrettyTableView.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 1AD37DCB1475936F006E9D1B /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ 1AD37DCC1475936F006E9D1B /* UIKit.framework */,
+ 1AD37DCE1475936F006E9D1B /* Foundation.framework */,
+ 1AD37DD01475936F006E9D1B /* CoreGraphics.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ 1AD37DD21475936F006E9D1B /* ICB_PrettyTableView */ = {
+ isa = PBXGroup;
+ children = (
+ 1AD37DDB1475936F006E9D1B /* ICBAppDelegate.h */,
+ 1AD37DDC1475936F006E9D1B /* ICBAppDelegate.m */,
+ 1AD37DDE1475936F006E9D1B /* ICBTableViewController.h */,
+ 1AD37DDF1475936F006E9D1B /* ICBTableViewController.m */,
+ 1AD37DEC14759594006E9D1B /* ICBTableViewCell.h */,
+ 1AD37DED14759594006E9D1B /* ICBTableViewCell.m */,
+ 1AD37DD31475936F006E9D1B /* Supporting Files */,
+ );
+ name = ICB_PrettyTableView;
+ path = ICBPrettyTableView;
+ sourceTree = "<group>";
+ };
+ 1AD37DD31475936F006E9D1B /* Supporting Files */ = {
+ isa = PBXGroup;
+ children = (
+ 1AD37DD41475936F006E9D1B /* ICB_PrettyTableView-Info.plist */,
+ 1AD37DD51475936F006E9D1B /* InfoPlist.strings */,
+ 1AD37DD81475936F006E9D1B /* main.m */,
+ 1AD37DDA1475936F006E9D1B /* ICB_PrettyTableView-Prefix.pch */,
+ );
+ name = "Supporting Files";
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 1AD37DC71475936F006E9D1B /* ICB_PrettyTableView */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 1AD37DE61475936F006E9D1B /* Build configuration list for PBXNativeTarget "ICB_PrettyTableView" */;
+ buildPhases = (
+ 1AD37DC41475936F006E9D1B /* Sources */,
+ 1AD37DC51475936F006E9D1B /* Frameworks */,
+ 1AD37DC61475936F006E9D1B /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = ICB_PrettyTableView;
+ productName = ICBPrettyTableView;
+ productReference = 1AD37DC81475936F006E9D1B /* ICB_PrettyTableView.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 1AD37DBF1475936F006E9D1B /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0420;
+ };
+ buildConfigurationList = 1AD37DC21475936F006E9D1B /* Build configuration list for PBXProject "ICB_PrettyTableView" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = 1AD37DBD1475936F006E9D1B;
+ productRefGroup = 1AD37DC91475936F006E9D1B /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 1AD37DC71475936F006E9D1B /* ICB_PrettyTableView */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 1AD37DC61475936F006E9D1B /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1AD37DD71475936F006E9D1B /* InfoPlist.strings in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 1AD37DC41475936F006E9D1B /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 1AD37DD91475936F006E9D1B /* main.m in Sources */,
+ 1AD37DDD1475936F006E9D1B /* ICBAppDelegate.m in Sources */,
+ 1AD37DE01475936F006E9D1B /* ICBTableViewController.m in Sources */,
+ 1AD37DEE14759594006E9D1B /* ICBTableViewCell.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 1AD37DD51475936F006E9D1B /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 1AD37DD61475936F006E9D1B /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 1AD37DE41475936F006E9D1B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ SDKROOT = iphoneos;
+ };
+ name = Debug;
+ };
+ 1AD37DE51475936F006E9D1B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ SDKROOT = iphoneos;
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ 1AD37DE71475936F006E9D1B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "ICBPrettyTableView/ICB_PrettyTableView-Prefix.pch";
+ INFOPLIST_FILE = "ICBPrettyTableView/ICB_PrettyTableView-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ 1AD37DE81475936F006E9D1B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "ICBPrettyTableView/ICB_PrettyTableView-Prefix.pch";
+ INFOPLIST_FILE = "ICBPrettyTableView/ICB_PrettyTableView-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.3;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 1AD37DC21475936F006E9D1B /* Build configuration list for PBXProject "ICB_PrettyTableView" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1AD37DE41475936F006E9D1B /* Debug */,
+ 1AD37DE51475936F006E9D1B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ 1AD37DE61475936F006E9D1B /* Build configuration list for PBXNativeTarget "ICB_PrettyTableView" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 1AD37DE71475936F006E9D1B /* Debug */,
+ 1AD37DE81475936F006E9D1B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 1AD37DBF1475936F006E9D1B /* Project object */;
+}
7 ICB_PrettyTableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:ICB_PrettyTableView.xcodeproj">
+ </FileRef>
+</Workspace>
1  README
@@ -0,0 +1 @@
+This will be the license which is one of those free for all licenses, and also a description of this project.
Please sign in to comment.
Something went wrong with that request. Please try again.