├── RP_UIView_2_PDF
├── en.lproj
│ └── InfoPlist.strings
├── images.jpeg
├── LzzyHale.jpg
├── images-1.jpeg
├── images-2.jpeg
├── images-3.jpeg
├── images-4.jpeg
├── images-5.jpeg
├── AppDelegate.m
├── PageOneView.m
├── ViewController.h
├── PreviewViewController.h
├── AppDelegate.h
├── main.m
├── RP_UIView_2_PDF-Prefix.pch
├── Images.xcassets
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ └── LaunchImage.launchimage
│ │ └── Contents.json
├── PageOneView.h
├── PreviewViewController.m
├── RP_UIView_2_PDF-Info.plist
├── ViewController.m
├── Launch Screen.storyboard
├── Main.storyboard
├── PageTwoView.xib
└── PageOneView.xib
├── RP_UIView_2_PDFTests
├── en.lproj
│ └── InfoPlist.strings
├── RP_UIView_2_PDFTests-Info.plist
└── RP_UIView_2_PDFTests.m
├── .gitignore
├── RP_UIView_2_PDF.xcodeproj
├── project.xcworkspace
│ └── contents.xcworkspacedata
├── xcuserdata
│ └── robertphillips.xcuserdatad
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ └── RP_UIView_2_PDF.xcscheme
└── project.pbxproj
├── RP_UIView_2_PDF.h
├── LICENSE
├── README.md
└── RP_UIView_2_PDF.m
/RP_UIView_2_PDF/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDFTests/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/images.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images.jpeg
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/LzzyHale.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/LzzyHale.jpg
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/images-1.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-1.jpeg
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/images-2.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-2.jpeg
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/images-3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-3.jpeg
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/images-4.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-4.jpeg
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/images-5.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobertAPhillips/UIView_2_PDF/HEAD/RP_UIView_2_PDF/images-5.jpeg
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | RP_UIView_2_PDF.xcodeproj/xcuserdata/robertnash.xcuserdatad/xcschemes/RP_UIView_2_PDF.xcscheme
2 | RP_UIView_2_PDF.xcodeproj/xcuserdata/robertnash.xcuserdatad/xcschemes/xcschememanagement.plist
3 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 17/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 |
11 | @implementation AppDelegate
12 | @end
13 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/PageOneView.m:
--------------------------------------------------------------------------------
1 | //
2 | // PageOneView.m
3 | // XIB_2_PDF
4 | //
5 | // Created by Robert Phillips on 16/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import "PageOneView.h"
10 |
11 | @implementation PageOneView
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/ViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.h
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 17/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface ViewController : UIViewController
12 |
13 | @end
14 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF.h:
--------------------------------------------------------------------------------
1 | //
2 | // RP_UIView_2_PDF.h
3 | // UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 16/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface RP_UIView_2_PDF : NSObject
12 |
13 | +(NSString *)generatePDFWithPages:(NSArray *)pages;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/PreviewViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // PreviewViewController.h
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Nash on 30/09/2015.
6 | // Copyright © 2015 Intohand. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface PreviewViewController : UIViewController
12 | @property (nonatomic, strong) NSURL *url;
13 | @end
14 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 17/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 | @end
16 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 17/12/2013.
6 | // Copyright (c) 2013 Intohand. 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 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header
3 | //
4 | // The contents of this file are implicitly included at the beginning of every source file.
5 | //
6 |
7 | #import
8 |
9 | #ifndef __IPHONE_5_0
10 | #warning "This project uses features only available in iOS SDK 5.0 and later."
11 | #endif
12 |
13 | #ifdef __OBJC__
14 | #import
15 | #import
16 | #endif
17 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "40x40",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "60x60",
16 | "scale" : "2x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/PageOneView.h:
--------------------------------------------------------------------------------
1 | //
2 | // PageOneView.h
3 | // XIB_2_PDF
4 | //
5 | // Created by Robert Phillips on 16/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface PageOneView : UIView
12 | @property (weak, nonatomic) IBOutlet UILabel *titleOne;
13 | @property (weak, nonatomic) IBOutlet UILabel *titleTwo;
14 | @property (weak, nonatomic) IBOutlet UILabel *labelOne;
15 | @property (weak, nonatomic) IBOutlet UILabel *labelTwo;
16 | @property (weak, nonatomic) IBOutlet UILabel *rightAllignedLabel;
17 | @end
18 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/Images.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "orientation" : "portrait",
5 | "idiom" : "iphone",
6 | "extent" : "full-screen",
7 | "minimum-system-version" : "7.0",
8 | "scale" : "2x"
9 | },
10 | {
11 | "orientation" : "portrait",
12 | "idiom" : "iphone",
13 | "subtype" : "retina4",
14 | "extent" : "full-screen",
15 | "minimum-system-version" : "7.0",
16 | "scale" : "2x"
17 | }
18 | ],
19 | "info" : {
20 | "version" : 1,
21 | "author" : "xcode"
22 | }
23 | }
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/PreviewViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // PreviewViewController.m
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Nash on 30/09/2015.
6 | // Copyright © 2015 Intohand. All rights reserved.
7 | //
8 |
9 | #import "PreviewViewController.h"
10 |
11 | @interface PreviewViewController ()
12 | @property (weak, nonatomic) IBOutlet UIWebView *webView;
13 | @end
14 |
15 | @implementation PreviewViewController
16 |
17 | -(void)viewWillAppear:(BOOL)animated {
18 | [super viewWillAppear:animated];
19 |
20 | NSURLRequest *request = [[NSURLRequest alloc] initWithURL:self.url];
21 | [self.webView loadRequest:request];
22 | }
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF.xcodeproj/xcuserdata/robertphillips.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | RP_UIView_2_PDF.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 |
13 | SuppressBuildableAutocreation
14 |
15 | 8FBA0D86186098BB002C7B11
16 |
17 | primary
18 |
19 |
20 | 8FBA0DA7186098BB002C7B11
21 |
22 | primary
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDFTests/RP_UIView_2_PDFTests-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundlePackageType
14 | BNDL
15 | CFBundleShortVersionString
16 | 1.0
17 | CFBundleSignature
18 | ????
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDFTests/RP_UIView_2_PDFTests.m:
--------------------------------------------------------------------------------
1 | //
2 | // RP_UIView_2_PDFTests.m
3 | // RP_UIView_2_PDFTests
4 | //
5 | // Created by Robert Phillips on 17/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface RP_UIView_2_PDFTests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation RP_UIView_2_PDFTests
16 |
17 | - (void)setUp
18 | {
19 | [super setUp];
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 | }
22 |
23 | - (void)tearDown
24 | {
25 | // Put teardown code here. This method is called after the invocation of each test method in the class.
26 | [super tearDown];
27 | }
28 |
29 | - (void)testExample
30 | {
31 | XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
32 | }
33 |
34 | @end
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 RobertAPhillips
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 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Description
2 | Create UIView objects using any method you like, including interface builder with Auto-layout and size classes enabled. Then generate a PDF directly from those views!
3 |
4 | ## Requirements
5 | XCode 6.4+, iOS 7.0+
6 |
7 | ## Installation
8 | In XCode, select 'Add Files To Project', and select RP_UIView_2_PDF.h
9 |
10 | ## Usage
11 | 1. Make a xib file. Your xib file should only consist of UILabels and/or UIImageViews and/or other UIView subviews. Use views that are 1 pixel high or wide to create lines. Set the tag of a UIView to 1 to have it draw filled or zero to draw as just a 1 pixel bordered box.
12 | 2. Load your xib like so
13 | ```objective-c
14 | UIView *pageOne = [[NSBundle mainBundle] loadNibNamed:@"NibNameOne" owner:self options:nil].lastObject;
15 | UIView *pageTwo = [[NSBundle mainBundle] loadNibNamed:@"NibNameTwo" owner:self options:nil].lastObject;
16 | ```
17 | 3. Then generate your PDF like this
18 | ```objective-c
19 | NSString *tempFilepath = [RP_UIView_2_PDF generatePDFWithPages:@[pageOne, pageTwo];
20 | ```
21 |
22 | See demo project for details.
23 |
24 | ## License
25 | UIView_2_PDF is released under the MIT license. See 'LICENCE.md' for details.
26 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/RP_UIView_2_PDF-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | LSRequiresIPhoneOS
26 |
27 | UILaunchStoryboardName
28 | Launch Screen
29 | UIMainStoryboardFile
30 | Main
31 | UIRequiredDeviceCapabilities
32 |
33 | armv7
34 |
35 | UISupportedInterfaceOrientations
36 |
37 | UIInterfaceOrientationPortrait
38 | UIInterfaceOrientationLandscapeLeft
39 | UIInterfaceOrientationLandscapeRight
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/ViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // ViewController.m
3 | // RP_UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 17/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import "ViewController.h"
10 | #import "PageOneView.h"
11 | #import "RP_UIView_2_PDF.h"
12 | #import "PreviewViewController.h"
13 |
14 | @implementation ViewController
15 |
16 | #pragma mark - User Actions
17 |
18 | - (IBAction)viewPDFButtonPressed:(id)sender {
19 |
20 | NSArray *pages = [self generateExamplePages];
21 |
22 | NSString *tempFilepath = [RP_UIView_2_PDF generatePDFWithPages:pages];
23 |
24 | [self performSegueWithIdentifier:@"WebView"
25 | sender:[NSURL fileURLWithPath:tempFilepath]];
26 | }
27 |
28 | -(NSArray *)generateExamplePages {
29 |
30 | NSMutableArray *collection = [@[] mutableCopy];
31 |
32 | PageOneView *pageOneView = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([PageOneView class]) owner:self options:nil].lastObject;
33 | pageOneView.titleOne.text = @"This title resizes:";
34 | pageOneView.titleTwo.text = @"This title also resizes:";
35 | pageOneView.labelOne.text = @"This label moves and resizes";
36 | pageOneView.labelTwo.text = @"This label also moves and resizes";
37 | pageOneView.rightAllignedLabel.text = @"$42.32";
38 |
39 | [collection addObject:pageOneView];
40 |
41 | UIView *pageTwoView = [[NSBundle mainBundle] loadNibNamed:@"PageTwoView" owner:self options:nil].lastObject;
42 |
43 | [collection addObject:pageTwoView];
44 |
45 | return [collection copy];
46 | }
47 |
48 | -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
49 | PreviewViewController *controller = segue.destinationViewController;
50 | controller.url = sender;
51 | }
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF.xcodeproj/xcuserdata/robertphillips.xcuserdatad/xcschemes/RP_UIView_2_PDF.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 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/Launch Screen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
28 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF.m:
--------------------------------------------------------------------------------
1 | //
2 | // RP_UIView_2_PDF.m
3 | // UIView_2_PDF
4 | //
5 | // Created by Robert Phillips on 16/12/2013.
6 | // Copyright (c) 2013 Intohand. All rights reserved.
7 | //
8 |
9 | #import "RP_UIView_2_PDF.h"
10 |
11 | @implementation RP_UIView_2_PDF
12 |
13 | +(NSString *)generatePDFWithPages:(NSArray *)pages {
14 |
15 | NSString *filepath = [[NSTemporaryDirectory() stringByAppendingPathComponent:@"temp"] stringByAppendingPathExtension:@"pdf"];
16 |
17 | UIGraphicsBeginPDFContextToFile(filepath, CGRectZero, nil);
18 |
19 | CGContextRef context = UIGraphicsGetCurrentContext();
20 |
21 | for (UIView *page in pages) {
22 | [self drawPage:page withContext:context];
23 | }
24 |
25 | UIGraphicsEndPDFContext();
26 |
27 | return filepath;
28 | }
29 |
30 | +(void)drawPage:(UIView *)page withContext:(CGContextRef)context {
31 |
32 | UIGraphicsBeginPDFPageWithInfo(CGRectMake(0.0, 0.0, page.bounds.size.width, page.bounds.size.height), nil);
33 |
34 | for (UIView *subview in [self allSubViewsForPage:page]) {
35 |
36 | if ([subview isKindOfClass:[UIImageView class]]) {
37 |
38 | UIImageView *imageView = (UIImageView *)subview;
39 | [imageView.image drawInRect:imageView.frame];
40 |
41 | } else if ([subview isKindOfClass:[UILabel class]]) {
42 |
43 | UILabel *label = (UILabel *)subview;
44 |
45 | NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
46 | paragraphStyle.lineBreakMode = label.lineBreakMode;
47 | paragraphStyle.alignment = label.textAlignment;
48 |
49 | [label.text drawInRect:label.frame
50 | withAttributes:@{
51 | NSFontAttributeName:label.font,
52 | NSParagraphStyleAttributeName:paragraphStyle,
53 | NSForegroundColorAttributeName:label.textColor
54 | }];
55 |
56 | } else if ([subview isKindOfClass:[UIView class]]) {
57 |
58 | [self drawLinesUsingUIView:subview
59 | withLineThickness:1.0
60 | inGraphicsContext:context
61 | fillView:subview.tag];
62 |
63 | }
64 | }
65 |
66 | }
67 |
68 | +(void)drawLinesUsingUIView:(UIView *)view withLineThickness:(float)thickness inGraphicsContext:(CGContextRef)context fillView:(BOOL)fillView
69 | {
70 | CGContextSaveGState(context);
71 | CGContextSetStrokeColorWithColor(context, view.backgroundColor.CGColor);
72 | CGContextSetFillColorWithColor(context, view.backgroundColor.CGColor);
73 | CGContextSetLineWidth(context, thickness);
74 |
75 | if (view.frame.size.width > 1 && view.frame.size.height == 1)
76 | {
77 | // view represents a horizontal line so draw one based on the top edge
78 | CGContextMoveToPoint(context, view.frame.origin.x-0.5, view.frame.origin.y);
79 | CGContextAddLineToPoint(context, view.frame.origin.x+view.frame.size.width-0.5, view.frame.origin.y);
80 | CGContextStrokePath(context);
81 | }
82 | else if (view.frame.size.width == 1 && view.frame.size.height > 1)
83 | {
84 | // view represents a vertical line so draw one based on the left edge
85 | CGContextMoveToPoint(context, view.frame.origin.x, view.frame.origin.y-0.5);
86 | CGContextAddLineToPoint(context, view.frame.origin.x, view.frame.origin.y+view.frame.size.height+0.5);
87 | CGContextStrokePath(context);
88 | }
89 | else if (view.frame.size.width > 1 && view.frame.size.height > 1)
90 | {
91 | // both the width and height of the view are greater than 1, so draw a rect around the frame
92 | if (fillView) {
93 | CGContextSetFillColorWithColor(context, view.backgroundColor.CGColor);
94 | CGContextFillRect(context, view.frame);
95 | }
96 | CGContextStrokeRect(context, view.frame);
97 | }
98 | CGContextRestoreGState(context);
99 | }
100 |
101 | +(NSArray*)allSubViewsForPage:(UIView *)page
102 | {
103 | NSMutableArray *array = [@[] mutableCopy];
104 |
105 | [array addObject:page];
106 |
107 | for (UIView *subview in page.subviews)
108 | {
109 | if ([subview isKindOfClass:[UILabel class]])
110 | {
111 | UILabel *label = (UILabel *)subview;
112 | [label sizeToFit];
113 | [label layoutIfNeeded];
114 | }
115 |
116 | CGPoint origin = [subview.superview convertPoint:subview.frame.origin toView:subview.superview.superview];
117 | subview.frame = CGRectMake(origin.x, origin.y, subview.frame.size.width, subview.frame.size.height);
118 | [array addObjectsFromArray:[self allSubViewsForPage:subview]];
119 | }
120 |
121 | return [array copy];
122 | }
123 |
124 | @end
125 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/PageTwoView.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
38 |
45 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF/PageOneView.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
58 |
64 |
70 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
--------------------------------------------------------------------------------
/RP_UIView_2_PDF.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 501EC5791BBB50AA00D48413 /* PreviewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 501EC5781BBB50AA00D48413 /* PreviewViewController.m */; settings = {ASSET_TAGS = (); }; };
11 | 509F60B41BBB41B7001B2470 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 509F60B31BBB41B7001B2470 /* Launch Screen.storyboard */; settings = {ASSET_TAGS = (); }; };
12 | 8FBA0D8B186098BB002C7B11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8A186098BB002C7B11 /* Foundation.framework */; };
13 | 8FBA0D8D186098BB002C7B11 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8C186098BB002C7B11 /* CoreGraphics.framework */; };
14 | 8FBA0D8F186098BB002C7B11 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8E186098BB002C7B11 /* UIKit.framework */; };
15 | 8FBA0D95186098BB002C7B11 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0D93186098BB002C7B11 /* InfoPlist.strings */; };
16 | 8FBA0D97186098BB002C7B11 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0D96186098BB002C7B11 /* main.m */; };
17 | 8FBA0D9B186098BB002C7B11 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0D9A186098BB002C7B11 /* AppDelegate.m */; };
18 | 8FBA0DA1186098BB002C7B11 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DA0186098BB002C7B11 /* ViewController.m */; };
19 | 8FBA0DA3186098BB002C7B11 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DA2186098BB002C7B11 /* Images.xcassets */; };
20 | 8FBA0DAA186098BB002C7B11 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0DA9186098BB002C7B11 /* XCTest.framework */; };
21 | 8FBA0DAB186098BB002C7B11 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8A186098BB002C7B11 /* Foundation.framework */; };
22 | 8FBA0DAC186098BB002C7B11 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8FBA0D8E186098BB002C7B11 /* UIKit.framework */; };
23 | 8FBA0DB4186098BB002C7B11 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DB2186098BB002C7B11 /* InfoPlist.strings */; };
24 | 8FBA0DB6186098BB002C7B11 /* RP_UIView_2_PDFTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DB5186098BB002C7B11 /* RP_UIView_2_PDFTests.m */; };
25 | 8FBA0DC818609943002C7B11 /* PageOneView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DC618609943002C7B11 /* PageOneView.m */; };
26 | 8FBA0DC918609943002C7B11 /* PageOneView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DC718609943002C7B11 /* PageOneView.xib */; };
27 | 8FBA0DCD18609979002C7B11 /* RP_UIView_2_PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBA0DCC18609979002C7B11 /* RP_UIView_2_PDF.m */; };
28 | 8FBA0DCF186099B1002C7B11 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DCE186099B1002C7B11 /* Main.storyboard */; };
29 | 8FBA0DD2186099FB002C7B11 /* LzzyHale.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DD1186099FB002C7B11 /* LzzyHale.jpg */; };
30 | 8FBA0DDA18609C52002C7B11 /* PageTwoView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DD918609C52002C7B11 /* PageTwoView.xib */; };
31 | 8FBA0DE11860A71E002C7B11 /* images-5.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDB1860A71E002C7B11 /* images-5.jpeg */; };
32 | 8FBA0DE21860A71E002C7B11 /* images-1.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDC1860A71E002C7B11 /* images-1.jpeg */; };
33 | 8FBA0DE31860A71E002C7B11 /* images-4.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDD1860A71E002C7B11 /* images-4.jpeg */; };
34 | 8FBA0DE41860A71E002C7B11 /* images-2.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDE1860A71E002C7B11 /* images-2.jpeg */; };
35 | 8FBA0DE51860A71E002C7B11 /* images.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DDF1860A71E002C7B11 /* images.jpeg */; };
36 | 8FBA0DE61860A71E002C7B11 /* images-3.jpeg in Resources */ = {isa = PBXBuildFile; fileRef = 8FBA0DE01860A71E002C7B11 /* images-3.jpeg */; };
37 | /* End PBXBuildFile section */
38 |
39 | /* Begin PBXContainerItemProxy section */
40 | 8FBA0DAD186098BB002C7B11 /* PBXContainerItemProxy */ = {
41 | isa = PBXContainerItemProxy;
42 | containerPortal = 8FBA0D7F186098BB002C7B11 /* Project object */;
43 | proxyType = 1;
44 | remoteGlobalIDString = 8FBA0D86186098BB002C7B11;
45 | remoteInfo = RP_UIView_2_PDF;
46 | };
47 | /* End PBXContainerItemProxy section */
48 |
49 | /* Begin PBXFileReference section */
50 | 501EC5771BBB50AA00D48413 /* PreviewViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreviewViewController.h; sourceTree = ""; };
51 | 501EC5781BBB50AA00D48413 /* PreviewViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreviewViewController.m; sourceTree = ""; };
52 | 509F60B31BBB41B7001B2470 /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; };
53 | 8FBA0D87186098BB002C7B11 /* RP_UIView_2_PDF.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RP_UIView_2_PDF.app; sourceTree = BUILT_PRODUCTS_DIR; };
54 | 8FBA0D8A186098BB002C7B11 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
55 | 8FBA0D8C186098BB002C7B11 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
56 | 8FBA0D8E186098BB002C7B11 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
57 | 8FBA0D92186098BB002C7B11 /* RP_UIView_2_PDF-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RP_UIView_2_PDF-Info.plist"; sourceTree = ""; };
58 | 8FBA0D94186098BB002C7B11 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
59 | 8FBA0D96186098BB002C7B11 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
60 | 8FBA0D98186098BB002C7B11 /* RP_UIView_2_PDF-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RP_UIView_2_PDF-Prefix.pch"; sourceTree = ""; };
61 | 8FBA0D99186098BB002C7B11 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
62 | 8FBA0D9A186098BB002C7B11 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
63 | 8FBA0D9F186098BB002C7B11 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; };
64 | 8FBA0DA0186098BB002C7B11 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; };
65 | 8FBA0DA2186098BB002C7B11 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
66 | 8FBA0DA8186098BB002C7B11 /* RP_UIView_2_PDFTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RP_UIView_2_PDFTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
67 | 8FBA0DA9186098BB002C7B11 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
68 | 8FBA0DB1186098BB002C7B11 /* RP_UIView_2_PDFTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "RP_UIView_2_PDFTests-Info.plist"; sourceTree = ""; };
69 | 8FBA0DB3186098BB002C7B11 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
70 | 8FBA0DB5186098BB002C7B11 /* RP_UIView_2_PDFTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RP_UIView_2_PDFTests.m; sourceTree = ""; };
71 | 8FBA0DC518609943002C7B11 /* PageOneView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PageOneView.h; sourceTree = ""; };
72 | 8FBA0DC618609943002C7B11 /* PageOneView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PageOneView.m; sourceTree = ""; };
73 | 8FBA0DC718609943002C7B11 /* PageOneView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PageOneView.xib; sourceTree = ""; };
74 | 8FBA0DCB18609979002C7B11 /* RP_UIView_2_PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RP_UIView_2_PDF.h; path = ../RP_UIView_2_PDF.h; sourceTree = ""; };
75 | 8FBA0DCC18609979002C7B11 /* RP_UIView_2_PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RP_UIView_2_PDF.m; path = ../RP_UIView_2_PDF.m; sourceTree = ""; };
76 | 8FBA0DCE186099B1002C7B11 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; };
77 | 8FBA0DD1186099FB002C7B11 /* LzzyHale.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = LzzyHale.jpg; sourceTree = ""; };
78 | 8FBA0DD918609C52002C7B11 /* PageTwoView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PageTwoView.xib; sourceTree = ""; };
79 | 8FBA0DDB1860A71E002C7B11 /* images-5.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-5.jpeg"; sourceTree = ""; };
80 | 8FBA0DDC1860A71E002C7B11 /* images-1.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-1.jpeg"; sourceTree = ""; };
81 | 8FBA0DDD1860A71E002C7B11 /* images-4.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-4.jpeg"; sourceTree = ""; };
82 | 8FBA0DDE1860A71E002C7B11 /* images-2.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-2.jpeg"; sourceTree = ""; };
83 | 8FBA0DDF1860A71E002C7B11 /* images.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = images.jpeg; sourceTree = ""; };
84 | 8FBA0DE01860A71E002C7B11 /* images-3.jpeg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "images-3.jpeg"; sourceTree = ""; };
85 | /* End PBXFileReference section */
86 |
87 | /* Begin PBXFrameworksBuildPhase section */
88 | 8FBA0D84186098BB002C7B11 /* Frameworks */ = {
89 | isa = PBXFrameworksBuildPhase;
90 | buildActionMask = 2147483647;
91 | files = (
92 | 8FBA0D8D186098BB002C7B11 /* CoreGraphics.framework in Frameworks */,
93 | 8FBA0D8F186098BB002C7B11 /* UIKit.framework in Frameworks */,
94 | 8FBA0D8B186098BB002C7B11 /* Foundation.framework in Frameworks */,
95 | );
96 | runOnlyForDeploymentPostprocessing = 0;
97 | };
98 | 8FBA0DA5186098BB002C7B11 /* Frameworks */ = {
99 | isa = PBXFrameworksBuildPhase;
100 | buildActionMask = 2147483647;
101 | files = (
102 | 8FBA0DAA186098BB002C7B11 /* XCTest.framework in Frameworks */,
103 | 8FBA0DAC186098BB002C7B11 /* UIKit.framework in Frameworks */,
104 | 8FBA0DAB186098BB002C7B11 /* Foundation.framework in Frameworks */,
105 | );
106 | runOnlyForDeploymentPostprocessing = 0;
107 | };
108 | /* End PBXFrameworksBuildPhase section */
109 |
110 | /* Begin PBXGroup section */
111 | 501EC57A1BBB50AD00D48413 /* PreviewViewController */ = {
112 | isa = PBXGroup;
113 | children = (
114 | 501EC5771BBB50AA00D48413 /* PreviewViewController.h */,
115 | 501EC5781BBB50AA00D48413 /* PreviewViewController.m */,
116 | );
117 | name = PreviewViewController;
118 | sourceTree = "";
119 | };
120 | 501EC57B1BBB50B100D48413 /* ViewController */ = {
121 | isa = PBXGroup;
122 | children = (
123 | 8FBA0D9F186098BB002C7B11 /* ViewController.h */,
124 | 8FBA0DA0186098BB002C7B11 /* ViewController.m */,
125 | );
126 | name = ViewController;
127 | sourceTree = "";
128 | };
129 | 8FBA0D7E186098BB002C7B11 = {
130 | isa = PBXGroup;
131 | children = (
132 | 8FBA0D90186098BB002C7B11 /* RP_UIView_2_PDF */,
133 | 8FBA0DAF186098BB002C7B11 /* RP_UIView_2_PDFTests */,
134 | 8FBA0D89186098BB002C7B11 /* Frameworks */,
135 | 8FBA0D88186098BB002C7B11 /* Products */,
136 | );
137 | sourceTree = "";
138 | };
139 | 8FBA0D88186098BB002C7B11 /* Products */ = {
140 | isa = PBXGroup;
141 | children = (
142 | 8FBA0D87186098BB002C7B11 /* RP_UIView_2_PDF.app */,
143 | 8FBA0DA8186098BB002C7B11 /* RP_UIView_2_PDFTests.xctest */,
144 | );
145 | name = Products;
146 | sourceTree = "";
147 | };
148 | 8FBA0D89186098BB002C7B11 /* Frameworks */ = {
149 | isa = PBXGroup;
150 | children = (
151 | 8FBA0D8A186098BB002C7B11 /* Foundation.framework */,
152 | 8FBA0D8C186098BB002C7B11 /* CoreGraphics.framework */,
153 | 8FBA0D8E186098BB002C7B11 /* UIKit.framework */,
154 | 8FBA0DA9186098BB002C7B11 /* XCTest.framework */,
155 | );
156 | name = Frameworks;
157 | sourceTree = "";
158 | };
159 | 8FBA0D90186098BB002C7B11 /* RP_UIView_2_PDF */ = {
160 | isa = PBXGroup;
161 | children = (
162 | 8FBA0DBF186098D2002C7B11 /* App Delegate */,
163 | 8FBA0DC0186098E1002C7B11 /* Storyboards */,
164 | 8FBA0DC1186098ED002C7B11 /* View Contollers */,
165 | 8FBA0DC318609924002C7B11 /* PDF Pages */,
166 | 8FBA0DCA18609965002C7B11 /* PDF Creation */,
167 | 8FBA0D91186098BB002C7B11 /* Supporting Files */,
168 | 8FBA0DD0186099EC002C7B11 /* Assets */,
169 | );
170 | path = RP_UIView_2_PDF;
171 | sourceTree = "";
172 | };
173 | 8FBA0D91186098BB002C7B11 /* Supporting Files */ = {
174 | isa = PBXGroup;
175 | children = (
176 | 509F60B31BBB41B7001B2470 /* Launch Screen.storyboard */,
177 | 8FBA0D92186098BB002C7B11 /* RP_UIView_2_PDF-Info.plist */,
178 | 8FBA0D93186098BB002C7B11 /* InfoPlist.strings */,
179 | 8FBA0D96186098BB002C7B11 /* main.m */,
180 | 8FBA0D98186098BB002C7B11 /* RP_UIView_2_PDF-Prefix.pch */,
181 | 8FBA0DA2186098BB002C7B11 /* Images.xcassets */,
182 | );
183 | name = "Supporting Files";
184 | sourceTree = "";
185 | };
186 | 8FBA0DAF186098BB002C7B11 /* RP_UIView_2_PDFTests */ = {
187 | isa = PBXGroup;
188 | children = (
189 | 8FBA0DB5186098BB002C7B11 /* RP_UIView_2_PDFTests.m */,
190 | 8FBA0DB0186098BB002C7B11 /* Supporting Files */,
191 | );
192 | path = RP_UIView_2_PDFTests;
193 | sourceTree = "";
194 | };
195 | 8FBA0DB0186098BB002C7B11 /* Supporting Files */ = {
196 | isa = PBXGroup;
197 | children = (
198 | 8FBA0DB1186098BB002C7B11 /* RP_UIView_2_PDFTests-Info.plist */,
199 | 8FBA0DB2186098BB002C7B11 /* InfoPlist.strings */,
200 | );
201 | name = "Supporting Files";
202 | sourceTree = "";
203 | };
204 | 8FBA0DBF186098D2002C7B11 /* App Delegate */ = {
205 | isa = PBXGroup;
206 | children = (
207 | 8FBA0D99186098BB002C7B11 /* AppDelegate.h */,
208 | 8FBA0D9A186098BB002C7B11 /* AppDelegate.m */,
209 | );
210 | name = "App Delegate";
211 | sourceTree = "";
212 | };
213 | 8FBA0DC0186098E1002C7B11 /* Storyboards */ = {
214 | isa = PBXGroup;
215 | children = (
216 | 8FBA0DCE186099B1002C7B11 /* Main.storyboard */,
217 | );
218 | name = Storyboards;
219 | sourceTree = "";
220 | };
221 | 8FBA0DC1186098ED002C7B11 /* View Contollers */ = {
222 | isa = PBXGroup;
223 | children = (
224 | 501EC57B1BBB50B100D48413 /* ViewController */,
225 | 501EC57A1BBB50AD00D48413 /* PreviewViewController */,
226 | );
227 | name = "View Contollers";
228 | sourceTree = "";
229 | };
230 | 8FBA0DC318609924002C7B11 /* PDF Pages */ = {
231 | isa = PBXGroup;
232 | children = (
233 | 8FBA0DC418609936002C7B11 /* Page 1 */,
234 | 8FBA0DD318609C01002C7B11 /* Page 2 */,
235 | );
236 | name = "PDF Pages";
237 | sourceTree = "";
238 | };
239 | 8FBA0DC418609936002C7B11 /* Page 1 */ = {
240 | isa = PBXGroup;
241 | children = (
242 | 8FBA0DC518609943002C7B11 /* PageOneView.h */,
243 | 8FBA0DC618609943002C7B11 /* PageOneView.m */,
244 | 8FBA0DC718609943002C7B11 /* PageOneView.xib */,
245 | );
246 | name = "Page 1";
247 | sourceTree = "";
248 | };
249 | 8FBA0DCA18609965002C7B11 /* PDF Creation */ = {
250 | isa = PBXGroup;
251 | children = (
252 | 8FBA0DCB18609979002C7B11 /* RP_UIView_2_PDF.h */,
253 | 8FBA0DCC18609979002C7B11 /* RP_UIView_2_PDF.m */,
254 | );
255 | name = "PDF Creation";
256 | sourceTree = "";
257 | };
258 | 8FBA0DD0186099EC002C7B11 /* Assets */ = {
259 | isa = PBXGroup;
260 | children = (
261 | 8FBA0DDB1860A71E002C7B11 /* images-5.jpeg */,
262 | 8FBA0DDC1860A71E002C7B11 /* images-1.jpeg */,
263 | 8FBA0DDD1860A71E002C7B11 /* images-4.jpeg */,
264 | 8FBA0DDE1860A71E002C7B11 /* images-2.jpeg */,
265 | 8FBA0DDF1860A71E002C7B11 /* images.jpeg */,
266 | 8FBA0DE01860A71E002C7B11 /* images-3.jpeg */,
267 | 8FBA0DD1186099FB002C7B11 /* LzzyHale.jpg */,
268 | );
269 | name = Assets;
270 | sourceTree = "";
271 | };
272 | 8FBA0DD318609C01002C7B11 /* Page 2 */ = {
273 | isa = PBXGroup;
274 | children = (
275 | 8FBA0DD918609C52002C7B11 /* PageTwoView.xib */,
276 | );
277 | name = "Page 2";
278 | sourceTree = "";
279 | };
280 | /* End PBXGroup section */
281 |
282 | /* Begin PBXNativeTarget section */
283 | 8FBA0D86186098BB002C7B11 /* RP_UIView_2_PDF */ = {
284 | isa = PBXNativeTarget;
285 | buildConfigurationList = 8FBA0DB9186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDF" */;
286 | buildPhases = (
287 | 8FBA0D83186098BB002C7B11 /* Sources */,
288 | 8FBA0D84186098BB002C7B11 /* Frameworks */,
289 | 8FBA0D85186098BB002C7B11 /* Resources */,
290 | );
291 | buildRules = (
292 | );
293 | dependencies = (
294 | );
295 | name = RP_UIView_2_PDF;
296 | productName = RP_UIView_2_PDF;
297 | productReference = 8FBA0D87186098BB002C7B11 /* RP_UIView_2_PDF.app */;
298 | productType = "com.apple.product-type.application";
299 | };
300 | 8FBA0DA7186098BB002C7B11 /* RP_UIView_2_PDFTests */ = {
301 | isa = PBXNativeTarget;
302 | buildConfigurationList = 8FBA0DBC186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDFTests" */;
303 | buildPhases = (
304 | 8FBA0DA4186098BB002C7B11 /* Sources */,
305 | 8FBA0DA5186098BB002C7B11 /* Frameworks */,
306 | 8FBA0DA6186098BB002C7B11 /* Resources */,
307 | );
308 | buildRules = (
309 | );
310 | dependencies = (
311 | 8FBA0DAE186098BB002C7B11 /* PBXTargetDependency */,
312 | );
313 | name = RP_UIView_2_PDFTests;
314 | productName = RP_UIView_2_PDFTests;
315 | productReference = 8FBA0DA8186098BB002C7B11 /* RP_UIView_2_PDFTests.xctest */;
316 | productType = "com.apple.product-type.bundle.unit-test";
317 | };
318 | /* End PBXNativeTarget section */
319 |
320 | /* Begin PBXProject section */
321 | 8FBA0D7F186098BB002C7B11 /* Project object */ = {
322 | isa = PBXProject;
323 | attributes = {
324 | LastUpgradeCheck = 0700;
325 | ORGANIZATIONNAME = "";
326 | TargetAttributes = {
327 | 8FBA0DA7186098BB002C7B11 = {
328 | TestTargetID = 8FBA0D86186098BB002C7B11;
329 | };
330 | };
331 | };
332 | buildConfigurationList = 8FBA0D82186098BB002C7B11 /* Build configuration list for PBXProject "RP_UIView_2_PDF" */;
333 | compatibilityVersion = "Xcode 3.2";
334 | developmentRegion = English;
335 | hasScannedForEncodings = 0;
336 | knownRegions = (
337 | en,
338 | Base,
339 | );
340 | mainGroup = 8FBA0D7E186098BB002C7B11;
341 | productRefGroup = 8FBA0D88186098BB002C7B11 /* Products */;
342 | projectDirPath = "";
343 | projectRoot = "";
344 | targets = (
345 | 8FBA0D86186098BB002C7B11 /* RP_UIView_2_PDF */,
346 | 8FBA0DA7186098BB002C7B11 /* RP_UIView_2_PDFTests */,
347 | );
348 | };
349 | /* End PBXProject section */
350 |
351 | /* Begin PBXResourcesBuildPhase section */
352 | 8FBA0D85186098BB002C7B11 /* Resources */ = {
353 | isa = PBXResourcesBuildPhase;
354 | buildActionMask = 2147483647;
355 | files = (
356 | 8FBA0DA3186098BB002C7B11 /* Images.xcassets in Resources */,
357 | 8FBA0DE31860A71E002C7B11 /* images-4.jpeg in Resources */,
358 | 8FBA0DE11860A71E002C7B11 /* images-5.jpeg in Resources */,
359 | 8FBA0DCF186099B1002C7B11 /* Main.storyboard in Resources */,
360 | 509F60B41BBB41B7001B2470 /* Launch Screen.storyboard in Resources */,
361 | 8FBA0DE41860A71E002C7B11 /* images-2.jpeg in Resources */,
362 | 8FBA0DD2186099FB002C7B11 /* LzzyHale.jpg in Resources */,
363 | 8FBA0D95186098BB002C7B11 /* InfoPlist.strings in Resources */,
364 | 8FBA0DE61860A71E002C7B11 /* images-3.jpeg in Resources */,
365 | 8FBA0DE51860A71E002C7B11 /* images.jpeg in Resources */,
366 | 8FBA0DE21860A71E002C7B11 /* images-1.jpeg in Resources */,
367 | 8FBA0DDA18609C52002C7B11 /* PageTwoView.xib in Resources */,
368 | 8FBA0DC918609943002C7B11 /* PageOneView.xib in Resources */,
369 | );
370 | runOnlyForDeploymentPostprocessing = 0;
371 | };
372 | 8FBA0DA6186098BB002C7B11 /* Resources */ = {
373 | isa = PBXResourcesBuildPhase;
374 | buildActionMask = 2147483647;
375 | files = (
376 | 8FBA0DB4186098BB002C7B11 /* InfoPlist.strings in Resources */,
377 | );
378 | runOnlyForDeploymentPostprocessing = 0;
379 | };
380 | /* End PBXResourcesBuildPhase section */
381 |
382 | /* Begin PBXSourcesBuildPhase section */
383 | 8FBA0D83186098BB002C7B11 /* Sources */ = {
384 | isa = PBXSourcesBuildPhase;
385 | buildActionMask = 2147483647;
386 | files = (
387 | 8FBA0DA1186098BB002C7B11 /* ViewController.m in Sources */,
388 | 8FBA0DCD18609979002C7B11 /* RP_UIView_2_PDF.m in Sources */,
389 | 8FBA0D9B186098BB002C7B11 /* AppDelegate.m in Sources */,
390 | 8FBA0DC818609943002C7B11 /* PageOneView.m in Sources */,
391 | 501EC5791BBB50AA00D48413 /* PreviewViewController.m in Sources */,
392 | 8FBA0D97186098BB002C7B11 /* main.m in Sources */,
393 | );
394 | runOnlyForDeploymentPostprocessing = 0;
395 | };
396 | 8FBA0DA4186098BB002C7B11 /* Sources */ = {
397 | isa = PBXSourcesBuildPhase;
398 | buildActionMask = 2147483647;
399 | files = (
400 | 8FBA0DB6186098BB002C7B11 /* RP_UIView_2_PDFTests.m in Sources */,
401 | );
402 | runOnlyForDeploymentPostprocessing = 0;
403 | };
404 | /* End PBXSourcesBuildPhase section */
405 |
406 | /* Begin PBXTargetDependency section */
407 | 8FBA0DAE186098BB002C7B11 /* PBXTargetDependency */ = {
408 | isa = PBXTargetDependency;
409 | target = 8FBA0D86186098BB002C7B11 /* RP_UIView_2_PDF */;
410 | targetProxy = 8FBA0DAD186098BB002C7B11 /* PBXContainerItemProxy */;
411 | };
412 | /* End PBXTargetDependency section */
413 |
414 | /* Begin PBXVariantGroup section */
415 | 8FBA0D93186098BB002C7B11 /* InfoPlist.strings */ = {
416 | isa = PBXVariantGroup;
417 | children = (
418 | 8FBA0D94186098BB002C7B11 /* en */,
419 | );
420 | name = InfoPlist.strings;
421 | sourceTree = "";
422 | };
423 | 8FBA0DB2186098BB002C7B11 /* InfoPlist.strings */ = {
424 | isa = PBXVariantGroup;
425 | children = (
426 | 8FBA0DB3186098BB002C7B11 /* en */,
427 | );
428 | name = InfoPlist.strings;
429 | sourceTree = "";
430 | };
431 | /* End PBXVariantGroup section */
432 |
433 | /* Begin XCBuildConfiguration section */
434 | 8FBA0DB7186098BB002C7B11 /* Debug */ = {
435 | isa = XCBuildConfiguration;
436 | buildSettings = {
437 | ALWAYS_SEARCH_USER_PATHS = NO;
438 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
439 | CLANG_CXX_LIBRARY = "libc++";
440 | CLANG_ENABLE_MODULES = YES;
441 | CLANG_ENABLE_OBJC_ARC = YES;
442 | CLANG_WARN_BOOL_CONVERSION = YES;
443 | CLANG_WARN_CONSTANT_CONVERSION = YES;
444 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
445 | CLANG_WARN_EMPTY_BODY = YES;
446 | CLANG_WARN_ENUM_CONVERSION = YES;
447 | CLANG_WARN_INT_CONVERSION = YES;
448 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
449 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
450 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
451 | COPY_PHASE_STRIP = NO;
452 | ENABLE_TESTABILITY = YES;
453 | GCC_C_LANGUAGE_STANDARD = gnu99;
454 | GCC_DYNAMIC_NO_PIC = NO;
455 | GCC_OPTIMIZATION_LEVEL = 0;
456 | GCC_PREPROCESSOR_DEFINITIONS = (
457 | "DEBUG=1",
458 | "$(inherited)",
459 | );
460 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
461 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
462 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
463 | GCC_WARN_UNDECLARED_SELECTOR = YES;
464 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
465 | GCC_WARN_UNUSED_FUNCTION = YES;
466 | GCC_WARN_UNUSED_VARIABLE = YES;
467 | IPHONEOS_DEPLOYMENT_TARGET = 7.0;
468 | ONLY_ACTIVE_ARCH = YES;
469 | SDKROOT = iphoneos;
470 | };
471 | name = Debug;
472 | };
473 | 8FBA0DB8186098BB002C7B11 /* Release */ = {
474 | isa = XCBuildConfiguration;
475 | buildSettings = {
476 | ALWAYS_SEARCH_USER_PATHS = NO;
477 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
478 | CLANG_CXX_LIBRARY = "libc++";
479 | CLANG_ENABLE_MODULES = YES;
480 | CLANG_ENABLE_OBJC_ARC = YES;
481 | CLANG_WARN_BOOL_CONVERSION = YES;
482 | CLANG_WARN_CONSTANT_CONVERSION = YES;
483 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
484 | CLANG_WARN_EMPTY_BODY = YES;
485 | CLANG_WARN_ENUM_CONVERSION = YES;
486 | CLANG_WARN_INT_CONVERSION = YES;
487 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
488 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
489 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
490 | COPY_PHASE_STRIP = YES;
491 | ENABLE_NS_ASSERTIONS = NO;
492 | GCC_C_LANGUAGE_STANDARD = gnu99;
493 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
494 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
495 | GCC_WARN_UNDECLARED_SELECTOR = YES;
496 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
497 | GCC_WARN_UNUSED_FUNCTION = YES;
498 | GCC_WARN_UNUSED_VARIABLE = YES;
499 | IPHONEOS_DEPLOYMENT_TARGET = 7.0;
500 | SDKROOT = iphoneos;
501 | VALIDATE_PRODUCT = YES;
502 | };
503 | name = Release;
504 | };
505 | 8FBA0DBA186098BB002C7B11 /* Debug */ = {
506 | isa = XCBuildConfiguration;
507 | buildSettings = {
508 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
509 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
510 | CODE_SIGN_IDENTITY = "iPhone Developer";
511 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
512 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch";
513 | INFOPLIST_FILE = "RP_UIView_2_PDF/RP_UIView_2_PDF-Info.plist";
514 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.RP-UIView-2-PDF";
515 | PRODUCT_NAME = "$(TARGET_NAME)";
516 | TARGETED_DEVICE_FAMILY = "1,2";
517 | WRAPPER_EXTENSION = app;
518 | };
519 | name = Debug;
520 | };
521 | 8FBA0DBB186098BB002C7B11 /* Release */ = {
522 | isa = XCBuildConfiguration;
523 | buildSettings = {
524 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
525 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
526 | CODE_SIGN_IDENTITY = "iPhone Developer";
527 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
528 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch";
529 | INFOPLIST_FILE = "RP_UIView_2_PDF/RP_UIView_2_PDF-Info.plist";
530 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.RP-UIView-2-PDF";
531 | PRODUCT_NAME = "$(TARGET_NAME)";
532 | TARGETED_DEVICE_FAMILY = "1,2";
533 | WRAPPER_EXTENSION = app;
534 | };
535 | name = Release;
536 | };
537 | 8FBA0DBD186098BB002C7B11 /* Debug */ = {
538 | isa = XCBuildConfiguration;
539 | buildSettings = {
540 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/RP_UIView_2_PDF.app/RP_UIView_2_PDF";
541 | FRAMEWORK_SEARCH_PATHS = (
542 | "$(SDKROOT)/Developer/Library/Frameworks",
543 | "$(inherited)",
544 | "$(DEVELOPER_FRAMEWORKS_DIR)",
545 | );
546 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
547 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch";
548 | GCC_PREPROCESSOR_DEFINITIONS = (
549 | "DEBUG=1",
550 | "$(inherited)",
551 | );
552 | INFOPLIST_FILE = "RP_UIView_2_PDFTests/RP_UIView_2_PDFTests-Info.plist";
553 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.com.${PRODUCT_NAME:rfc1034identifier}";
554 | PRODUCT_NAME = "$(TARGET_NAME)";
555 | TEST_HOST = "$(BUNDLE_LOADER)";
556 | WRAPPER_EXTENSION = xctest;
557 | };
558 | name = Debug;
559 | };
560 | 8FBA0DBE186098BB002C7B11 /* Release */ = {
561 | isa = XCBuildConfiguration;
562 | buildSettings = {
563 | BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/RP_UIView_2_PDF.app/RP_UIView_2_PDF";
564 | FRAMEWORK_SEARCH_PATHS = (
565 | "$(SDKROOT)/Developer/Library/Frameworks",
566 | "$(inherited)",
567 | "$(DEVELOPER_FRAMEWORKS_DIR)",
568 | );
569 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
570 | GCC_PREFIX_HEADER = "RP_UIView_2_PDF/RP_UIView_2_PDF-Prefix.pch";
571 | INFOPLIST_FILE = "RP_UIView_2_PDFTests/RP_UIView_2_PDFTests-Info.plist";
572 | PRODUCT_BUNDLE_IDENTIFIER = "com.robphillips.com.${PRODUCT_NAME:rfc1034identifier}";
573 | PRODUCT_NAME = "$(TARGET_NAME)";
574 | TEST_HOST = "$(BUNDLE_LOADER)";
575 | WRAPPER_EXTENSION = xctest;
576 | };
577 | name = Release;
578 | };
579 | /* End XCBuildConfiguration section */
580 |
581 | /* Begin XCConfigurationList section */
582 | 8FBA0D82186098BB002C7B11 /* Build configuration list for PBXProject "RP_UIView_2_PDF" */ = {
583 | isa = XCConfigurationList;
584 | buildConfigurations = (
585 | 8FBA0DB7186098BB002C7B11 /* Debug */,
586 | 8FBA0DB8186098BB002C7B11 /* Release */,
587 | );
588 | defaultConfigurationIsVisible = 0;
589 | defaultConfigurationName = Release;
590 | };
591 | 8FBA0DB9186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDF" */ = {
592 | isa = XCConfigurationList;
593 | buildConfigurations = (
594 | 8FBA0DBA186098BB002C7B11 /* Debug */,
595 | 8FBA0DBB186098BB002C7B11 /* Release */,
596 | );
597 | defaultConfigurationIsVisible = 0;
598 | defaultConfigurationName = Release;
599 | };
600 | 8FBA0DBC186098BB002C7B11 /* Build configuration list for PBXNativeTarget "RP_UIView_2_PDFTests" */ = {
601 | isa = XCConfigurationList;
602 | buildConfigurations = (
603 | 8FBA0DBD186098BB002C7B11 /* Debug */,
604 | 8FBA0DBE186098BB002C7B11 /* Release */,
605 | );
606 | defaultConfigurationIsVisible = 0;
607 | defaultConfigurationName = Release;
608 | };
609 | /* End XCConfigurationList section */
610 | };
611 | rootObject = 8FBA0D7F186098BB002C7B11 /* Project object */;
612 | }
613 |
--------------------------------------------------------------------------------