From 48c34527e55fecb4df8b056f57918c1ec437bce4 Mon Sep 17 00:00:00 2001 From: Christian Beer Date: Wed, 31 Aug 2022 09:23:30 +0200 Subject: [PATCH 1/2] Switch to Swift Package, Cleanup Example --- Classes/UIImage_PDF_exampleAppDelegate.h | 22 - Example/Classes/AppDelegate.h | 22 + .../Classes/AppDelegate.m | 8 +- .../Classes/ViewController.h | 6 +- .../Classes/ViewController.m | 13 +- .../Prefix-Header.pch | 0 .../Resources/Info.plist | 4 +- Example/Resources/MainWindow.xib | 33 ++ Example/Resources/ViewController.xib | 24 + YinYang.pdf => Example/Resources/YinYang.pdf | Bin .../project.pbxproj | 192 +++++--- Example/iPad/MainWindow-iPad.xib | 32 ++ main.m => Example/main.m | 0 MainStoryboard.storyboard | 7 - MainWindow.xib | 444 ------------------ Package.swift | 25 + README.md | 2 +- .../UIImage-PDF}/LICENSE.txt | 0 .../UIImage-PDF}/NSData+MD5.h | 0 .../UIImage-PDF}/NSData+MD5.m | 0 .../UIImage-PDF}/NSString+MD5.h | 0 .../UIImage-PDF}/NSString+MD5.m | 0 .../UIImage-PDF}/PDFView.h | 0 .../UIImage-PDF}/PDFView.m | 0 .../UIImage-PDF}/UIImage+PDF.h | 0 .../UIImage-PDF}/UIImage+PDF.m | 0 .../UIImage-PDF}/UIView+Image.h | 0 .../UIImage-PDF}/UIView+Image.m | 0 Sources/UIImage-PDF/include/UIImage_PDF.h | 13 + Tests/UIImage-PDFTests/UIImage_PDFTests.swift | 15 + Tests/UIImage-PDFTests/YinYang.pdf | Bin 0 -> 4613 bytes UIImage_PDF_exampleViewController.xib | 156 ------ iPad/MainWindow-iPad.xib | 202 -------- 33 files changed, 293 insertions(+), 927 deletions(-) delete mode 100644 Classes/UIImage_PDF_exampleAppDelegate.h create mode 100644 Example/Classes/AppDelegate.h rename Classes/UIImage_PDF_exampleAppDelegate.m => Example/Classes/AppDelegate.m (93%) rename Classes/UIImage_PDF_exampleViewController.h => Example/Classes/ViewController.h (55%) rename Classes/UIImage_PDF_exampleViewController.m => Example/Classes/ViewController.m (87%) rename UIImage_PDF_example_Prefix.pch => Example/Prefix-Header.pch (100%) rename UIImage_PDF_example-Info.plist => Example/Resources/Info.plist (89%) create mode 100644 Example/Resources/MainWindow.xib create mode 100644 Example/Resources/ViewController.xib rename YinYang.pdf => Example/Resources/YinYang.pdf (100%) rename {UIImage+PDF example.xcodeproj => Example/UIImage+PDF example.xcodeproj}/project.pbxproj (56%) create mode 100644 Example/iPad/MainWindow-iPad.xib rename main.m => Example/main.m (100%) delete mode 100644 MainStoryboard.storyboard delete mode 100644 MainWindow.xib create mode 100644 Package.swift rename {UIImage+PDF => Sources/UIImage-PDF}/LICENSE.txt (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/NSData+MD5.h (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/NSData+MD5.m (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/NSString+MD5.h (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/NSString+MD5.m (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/PDFView.h (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/PDFView.m (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/UIImage+PDF.h (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/UIImage+PDF.m (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/UIView+Image.h (100%) rename {UIImage+PDF => Sources/UIImage-PDF}/UIView+Image.m (100%) create mode 100644 Sources/UIImage-PDF/include/UIImage_PDF.h create mode 100644 Tests/UIImage-PDFTests/UIImage_PDFTests.swift create mode 100644 Tests/UIImage-PDFTests/YinYang.pdf delete mode 100644 UIImage_PDF_exampleViewController.xib delete mode 100644 iPad/MainWindow-iPad.xib diff --git a/Classes/UIImage_PDF_exampleAppDelegate.h b/Classes/UIImage_PDF_exampleAppDelegate.h deleted file mode 100644 index dc9e5ca..0000000 --- a/Classes/UIImage_PDF_exampleAppDelegate.h +++ /dev/null @@ -1,22 +0,0 @@ -// -// UIImage_PDF_exampleAppDelegate.h -// UIImage+PDF example -// -// Created by Nigel Barber on 15/10/2011. -// Copyright 2011 Mindbrix. All rights reserved. -// - -#import - -@class UIImage_PDF_exampleViewController; - -@interface UIImage_PDF_exampleAppDelegate : NSObject { - UIWindow *window; - UIImage_PDF_exampleViewController *viewController; -} - -@property (nonatomic, retain) IBOutlet UIWindow *window; -@property (nonatomic, retain) IBOutlet UIImage_PDF_exampleViewController *viewController; - -@end - diff --git a/Example/Classes/AppDelegate.h b/Example/Classes/AppDelegate.h new file mode 100644 index 0000000..21e1b7a --- /dev/null +++ b/Example/Classes/AppDelegate.h @@ -0,0 +1,22 @@ +// +// AppDelegate.h +// UIImage+PDF example +// +// Created by Nigel Barber on 15/10/2011. +// Copyright 2011 Mindbrix. All rights reserved. +// + +#import + +@class ViewController; + +@interface AppDelegate : NSObject { + UIWindow *window; + ViewController *viewController; +} + +@property (nonatomic, retain) IBOutlet UIWindow *window; +@property (nonatomic, retain) IBOutlet ViewController *viewController; + +@end + diff --git a/Classes/UIImage_PDF_exampleAppDelegate.m b/Example/Classes/AppDelegate.m similarity index 93% rename from Classes/UIImage_PDF_exampleAppDelegate.m rename to Example/Classes/AppDelegate.m index 9282cd4..eda516c 100644 --- a/Classes/UIImage_PDF_exampleAppDelegate.m +++ b/Example/Classes/AppDelegate.m @@ -1,15 +1,15 @@ // -// UIImage_PDF_exampleAppDelegate.m +// AppDelegate.m // UIImage+PDF example // // Created by Nigel Barber on 15/10/2011. // Copyright 2011 Mindbrix. All rights reserved. // -#import "UIImage_PDF_exampleAppDelegate.h" -#import "UIImage_PDF_exampleViewController.h" +#import "AppDelegate.h" +#import "ViewController.h" -@implementation UIImage_PDF_exampleAppDelegate +@implementation AppDelegate @synthesize window; @synthesize viewController; diff --git a/Classes/UIImage_PDF_exampleViewController.h b/Example/Classes/ViewController.h similarity index 55% rename from Classes/UIImage_PDF_exampleViewController.h rename to Example/Classes/ViewController.h index 2a52bd7..4a59650 100644 --- a/Classes/UIImage_PDF_exampleViewController.h +++ b/Example/Classes/ViewController.h @@ -1,5 +1,5 @@ // -// UIImage_PDF_exampleViewController.h +// ViewController.h // UIImage+PDF example // // Created by Nigel Barber on 15/10/2011. @@ -8,10 +8,10 @@ #import -#import "UIImage+PDF.h" +@import UIImage_PDF; -@interface UIImage_PDF_exampleViewController : UIViewController { +@interface ViewController : UIViewController { } diff --git a/Classes/UIImage_PDF_exampleViewController.m b/Example/Classes/ViewController.m similarity index 87% rename from Classes/UIImage_PDF_exampleViewController.m rename to Example/Classes/ViewController.m index d137043..ae9d2d6 100644 --- a/Classes/UIImage_PDF_exampleViewController.m +++ b/Example/Classes/ViewController.m @@ -1,20 +1,20 @@ // -// UIImage_PDF_exampleViewController.m +// ViewController.m // UIImage+PDF example // // Created by Nigel Barber on 15/10/2011. // Copyright 2011 Mindbrix. All rights reserved. // -#import "UIImage_PDF_exampleViewController.h" +#import "ViewController.h" -@interface UIImage_PDF_exampleViewController () +@interface ViewController () @property (nonatomic, strong) NSMutableArray *collection; @end -@implementation UIImage_PDF_exampleViewController +@implementation ViewController @@ -77,11 +77,6 @@ - (void)didReceiveMemoryWarning { // Release any cached data, images, etc that aren't in use. } -- (void)viewDidUnload { - // Release any retained subviews of the main view. - // e.g. self.myOutlet = nil; -} - - (void)dealloc { [super dealloc]; diff --git a/UIImage_PDF_example_Prefix.pch b/Example/Prefix-Header.pch similarity index 100% rename from UIImage_PDF_example_Prefix.pch rename to Example/Prefix-Header.pch diff --git a/UIImage_PDF_example-Info.plist b/Example/Resources/Info.plist similarity index 89% rename from UIImage_PDF_example-Info.plist rename to Example/Resources/Info.plist index 783b606..b07e519 100644 --- a/UIImage_PDF_example-Info.plist +++ b/Example/Resources/Info.plist @@ -9,13 +9,15 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL + CFBundleShortVersionString + 1 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Resources/MainWindow.xib b/Example/Resources/MainWindow.xib new file mode 100644 index 0000000..007df24 --- /dev/null +++ b/Example/Resources/MainWindow.xib @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Resources/ViewController.xib b/Example/Resources/ViewController.xib new file mode 100644 index 0000000..5eec6c9 --- /dev/null +++ b/Example/Resources/ViewController.xib @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/YinYang.pdf b/Example/Resources/YinYang.pdf similarity index 100% rename from YinYang.pdf rename to Example/Resources/YinYang.pdf diff --git a/UIImage+PDF example.xcodeproj/project.pbxproj b/Example/UIImage+PDF example.xcodeproj/project.pbxproj similarity index 56% rename from UIImage+PDF example.xcodeproj/project.pbxproj rename to Example/UIImage+PDF example.xcodeproj/project.pbxproj index efc4ef4..d7e7974 100755 --- a/UIImage+PDF example.xcodeproj/project.pbxproj +++ b/Example/UIImage+PDF example.xcodeproj/project.pbxproj @@ -3,54 +3,39 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ - 1D3623260D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.m */; }; + 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* AppDelegate.m */; }; 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; - 2899E5220DE3E06400AC0155 /* UIImage_PDF_exampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* UIImage_PDF_exampleViewController.xib */; }; + 2899E5220DE3E06400AC0155 /* ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* ViewController.xib */; }; 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; - 28D7ACF80DDB3853001CB0EB /* UIImage_PDF_exampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* UIImage_PDF_exampleViewController.m */; }; - A60041BF1779A5C500128861 /* NSData+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = A60041BE1779A5C500128861 /* NSData+MD5.m */; }; - A6685B1D1449C642006A3A42 /* PDFView.m in Sources */ = {isa = PBXBuildFile; fileRef = A6685B181449C642006A3A42 /* PDFView.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - A6685B1E1449C642006A3A42 /* UIImage+PDF.m in Sources */ = {isa = PBXBuildFile; fileRef = A6685B1A1449C642006A3A42 /* UIImage+PDF.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - A6685B1F1449C642006A3A42 /* UIView+Image.m in Sources */ = {isa = PBXBuildFile; fileRef = A6685B1C1449C642006A3A42 /* UIView+Image.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; - A6CF4D5F15384D12000AA6BB /* NSString+MD5.m in Sources */ = {isa = PBXBuildFile; fileRef = A6CF4D5E15384D12000AA6BB /* NSString+MD5.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; }; + 28D7ACF80DDB3853001CB0EB /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* ViewController.m */; }; A6CF4D6215384D68000AA6BB /* MainWindow-iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = A6CF4D6115384D68000AA6BB /* MainWindow-iPad.xib */; }; - E969166119DC7713006942BF /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E969166019DC7713006942BF /* MainStoryboard.storyboard */; }; + AAF1907C28BF435600113725 /* UIImage-PDF in Frameworks */ = {isa = PBXBuildFile; productRef = AAF1907B28BF435600113725 /* UIImage-PDF */; }; E9C111EB1B25A1D300412E94 /* YinYang.pdf in Resources */ = {isa = PBXBuildFile; fileRef = E9C111EA1B25A1D300412E94 /* YinYang.pdf */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 1D3623240D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIImage_PDF_exampleAppDelegate.h; sourceTree = ""; }; - 1D3623250D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIImage_PDF_exampleAppDelegate.m; sourceTree = ""; }; + 1D3623240D0F684500981E51 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 1D3623250D0F684500981E51 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 1D6058910D05DD3D006BFB54 /* UIImage+PDF example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "UIImage+PDF example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 2899E5210DE3E06400AC0155 /* UIImage_PDF_exampleViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UIImage_PDF_exampleViewController.xib; sourceTree = ""; }; + 2899E5210DE3E06400AC0155 /* ViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ViewController.xib; sourceTree = ""; }; 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = ""; }; - 28D7ACF60DDB3853001CB0EB /* UIImage_PDF_exampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIImage_PDF_exampleViewController.h; sourceTree = ""; }; - 28D7ACF70DDB3853001CB0EB /* UIImage_PDF_exampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIImage_PDF_exampleViewController.m; sourceTree = ""; }; + 28D7ACF60DDB3853001CB0EB /* ViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; + 28D7ACF70DDB3853001CB0EB /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 32CA4F630368D1EE00C91783 /* UIImage_PDF_example_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIImage_PDF_example_Prefix.pch; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* UIImage_PDF_example-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "UIImage_PDF_example-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; - A60041BD1779A5C500128861 /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = ""; }; - A60041BE1779A5C500128861 /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = ""; }; - A6685B171449C642006A3A42 /* PDFView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFView.h; sourceTree = ""; }; - A6685B181449C642006A3A42 /* PDFView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFView.m; sourceTree = ""; }; - A6685B191449C642006A3A42 /* UIImage+PDF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+PDF.h"; sourceTree = ""; }; - A6685B1A1449C642006A3A42 /* UIImage+PDF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+PDF.m"; sourceTree = ""; }; - A6685B1B1449C642006A3A42 /* UIView+Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Image.h"; sourceTree = ""; }; - A6685B1C1449C642006A3A42 /* UIView+Image.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Image.m"; sourceTree = ""; }; - A6CF4D5D15384D12000AA6BB /* NSString+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+MD5.h"; sourceTree = ""; }; - A6CF4D5E15384D12000AA6BB /* NSString+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+MD5.m"; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* Prefix-Header.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Prefix-Header.pch"; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; A6CF4D6115384D68000AA6BB /* MainWindow-iPad.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = "MainWindow-iPad.xib"; path = "iPad/MainWindow-iPad.xib"; sourceTree = ""; }; - E969166019DC7713006942BF /* MainStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard.storyboard; sourceTree = ""; }; + AA244C6528BF3DEB000CB41C /* UIImage-PDF */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "UIImage-PDF"; path = ..; sourceTree = ""; }; E9C111EA1B25A1D300412E94 /* YinYang.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = YinYang.pdf; sourceTree = ""; }; /* End PBXFileReference section */ @@ -62,6 +47,7 @@ 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, + AAF1907C28BF435600113725 /* UIImage-PDF in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -71,10 +57,10 @@ 080E96DDFE201D6D7F000001 /* Classes */ = { isa = PBXGroup; children = ( - 1D3623240D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.h */, - 1D3623250D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.m */, - 28D7ACF60DDB3853001CB0EB /* UIImage_PDF_exampleViewController.h */, - 28D7ACF70DDB3853001CB0EB /* UIImage_PDF_exampleViewController.m */, + 1D3623240D0F684500981E51 /* AppDelegate.h */, + 1D3623250D0F684500981E51 /* AppDelegate.m */, + 28D7ACF60DDB3853001CB0EB /* ViewController.h */, + 28D7ACF70DDB3853001CB0EB /* ViewController.m */, ); path = Classes; sourceTree = ""; @@ -90,8 +76,7 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( - E969166019DC7713006942BF /* MainStoryboard.storyboard */, - A6685B161449C642006A3A42 /* UIImage+PDF */, + AA244C6428BF3DEB000CB41C /* Packages */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97315FDCFA39411CA2CEA /* Other Sources */, 29B97317FDCFA39411CA2CEA /* Resources */, @@ -105,7 +90,7 @@ 29B97315FDCFA39411CA2CEA /* Other Sources */ = { isa = PBXGroup; children = ( - 32CA4F630368D1EE00C91783 /* UIImage_PDF_example_Prefix.pch */, + 32CA4F630368D1EE00C91783 /* Prefix-Header.pch */, 29B97316FDCFA39411CA2CEA /* main.m */, ); name = "Other Sources"; @@ -115,11 +100,11 @@ isa = PBXGroup; children = ( E9C111EA1B25A1D300412E94 /* YinYang.pdf */, - 2899E5210DE3E06400AC0155 /* UIImage_PDF_exampleViewController.xib */, + 2899E5210DE3E06400AC0155 /* ViewController.xib */, 28AD733E0D9D9553002E5188 /* MainWindow.xib */, - 8D1107310486CEB800E47090 /* UIImage_PDF_example-Info.plist */, + 8D1107310486CEB800E47090 /* Info.plist */, ); - name = Resources; + path = Resources; sourceTree = ""; }; 29B97323FDCFA39411CA2CEA /* Frameworks */ = { @@ -132,29 +117,20 @@ name = Frameworks; sourceTree = ""; }; - A6685B161449C642006A3A42 /* UIImage+PDF */ = { + A6CF4D6015384D66000AA6BB /* iPad */ = { isa = PBXGroup; children = ( - A60041BD1779A5C500128861 /* NSData+MD5.h */, - A60041BE1779A5C500128861 /* NSData+MD5.m */, - A6CF4D5D15384D12000AA6BB /* NSString+MD5.h */, - A6CF4D5E15384D12000AA6BB /* NSString+MD5.m */, - A6685B171449C642006A3A42 /* PDFView.h */, - A6685B181449C642006A3A42 /* PDFView.m */, - A6685B191449C642006A3A42 /* UIImage+PDF.h */, - A6685B1A1449C642006A3A42 /* UIImage+PDF.m */, - A6685B1B1449C642006A3A42 /* UIView+Image.h */, - A6685B1C1449C642006A3A42 /* UIView+Image.m */, + A6CF4D6115384D68000AA6BB /* MainWindow-iPad.xib */, ); - path = "UIImage+PDF"; + name = iPad; sourceTree = ""; }; - A6CF4D6015384D66000AA6BB /* iPad */ = { + AA244C6428BF3DEB000CB41C /* Packages */ = { isa = PBXGroup; children = ( - A6CF4D6115384D68000AA6BB /* MainWindow-iPad.xib */, + AA244C6528BF3DEB000CB41C /* UIImage-PDF */, ); - name = iPad; + name = Packages; sourceTree = ""; }; /* End PBXGroup section */ @@ -173,6 +149,9 @@ dependencies = ( ); name = "UIImage+PDF example"; + packageProductDependencies = ( + AAF1907B28BF435600113725 /* UIImage-PDF */, + ); productName = "UIImage+PDF example"; productReference = 1D6058910D05DD3D006BFB54 /* UIImage+PDF example.app */; productType = "com.apple.product-type.application"; @@ -183,17 +162,18 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0630; + LastUpgradeCheck = 1340; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "UIImage+PDF example" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( - English, - Japanese, - French, - German, + en, + ja, + fr, + de, + Base, ); mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; projectDirPath = ""; @@ -211,8 +191,7 @@ files = ( 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, E9C111EB1B25A1D300412E94 /* YinYang.pdf in Resources */, - E969166119DC7713006942BF /* MainStoryboard.storyboard in Resources */, - 2899E5220DE3E06400AC0155 /* UIImage_PDF_exampleViewController.xib in Resources */, + 2899E5220DE3E06400AC0155 /* ViewController.xib in Resources */, A6CF4D6215384D68000AA6BB /* MainWindow-iPad.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -225,13 +204,8 @@ buildActionMask = 2147483647; files = ( 1D60589B0D05DD56006BFB54 /* main.m in Sources */, - 1D3623260D0F684500981E51 /* UIImage_PDF_exampleAppDelegate.m in Sources */, - 28D7ACF80DDB3853001CB0EB /* UIImage_PDF_exampleViewController.m in Sources */, - A6685B1D1449C642006A3A42 /* PDFView.m in Sources */, - A6685B1E1449C642006A3A42 /* UIImage+PDF.m in Sources */, - A6685B1F1449C642006A3A42 /* UIView+Image.m in Sources */, - A6CF4D5F15384D12000AA6BB /* NSString+MD5.m in Sources */, - A60041BF1779A5C500128861 /* NSData+MD5.m in Sources */, + 1D3623260D0F684500981E51 /* AppDelegate.m in Sources */, + 28D7ACF80DDB3853001CB0EB /* ViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -242,13 +216,15 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = UIImage_PDF_example_Prefix.pch; - INFOPLIST_FILE = "UIImage_PDF_example-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; + GCC_PREFIX_HEADER = "Prefix-Header.pch"; + INFOPLIST_FILE = Resources/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "UIImage+PDF example"; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -258,11 +234,13 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_WEAK = YES; COPY_PHASE_STRIP = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = UIImage_PDF_example_Prefix.pch; - INFOPLIST_FILE = "UIImage_PDF_example-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; + GCC_PREFIX_HEADER = "Prefix-Header.pch"; + INFOPLIST_FILE = Resources/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "UIImage+PDF example"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; @@ -272,13 +250,39 @@ C01FCF4F08A954540054247B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = c99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; SDKROOT = iphoneos; }; name = Debug; @@ -286,13 +290,38 @@ C01FCF5008A954540054247B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ENABLE_MODULES = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = c99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.1; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; - PREBINDING = NO; SDKROOT = iphoneos; }; name = Release; @@ -319,6 +348,13 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCSwiftPackageProductDependency section */ + AAF1907B28BF435600113725 /* UIImage-PDF */ = { + isa = XCSwiftPackageProductDependency; + productName = "UIImage-PDF"; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; } diff --git a/Example/iPad/MainWindow-iPad.xib b/Example/iPad/MainWindow-iPad.xib new file mode 100644 index 0000000..12ae6d5 --- /dev/null +++ b/Example/iPad/MainWindow-iPad.xib @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/main.m b/Example/main.m similarity index 100% rename from main.m rename to Example/main.m diff --git a/MainStoryboard.storyboard b/MainStoryboard.storyboard deleted file mode 100644 index 673e0f7..0000000 --- a/MainStoryboard.storyboard +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/MainWindow.xib b/MainWindow.xib deleted file mode 100644 index 26989ca..0000000 --- a/MainWindow.xib +++ /dev/null @@ -1,444 +0,0 @@ - - - - 1024 - 10D571 - 786 - 1038.29 - 460.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 112 - - - YES - - - - YES - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - YES - - YES - - - YES - - - - YES - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - IBCocoaTouchFramework - - - UIImage_PDF_exampleViewController - - - 1 - - IBCocoaTouchFramework - NO - - - - 292 - {320, 480} - - 1 - MSAxIDEAA - - NO - NO - - IBCocoaTouchFramework - YES - - - - - YES - - - delegate - - - - 4 - - - - viewController - - - - 11 - - - - window - - - - 14 - - - - - YES - - 0 - - - - - - -1 - - - File's Owner - - - 3 - - - UIImage_PDF_example App Delegate - - - -2 - - - - - 10 - - - - - 12 - - - - - - - YES - - YES - -1.CustomClassName - -2.CustomClassName - 10.CustomClassName - 10.IBEditorWindowLastContentRect - 10.IBPluginDependency - 12.IBEditorWindowLastContentRect - 12.IBPluginDependency - 3.CustomClassName - 3.IBPluginDependency - - - YES - UIApplication - UIResponder - UIImage_PDF_exampleViewController - {{234, 376}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - {{525, 346}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIImage_PDF_exampleAppDelegate - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - YES - - - - - YES - - - YES - - - - 15 - - - - YES - - UIWindow - UIView - - IBUserSource - - - - - UIImage_PDF_exampleAppDelegate - NSObject - - YES - - YES - viewController - window - - - YES - UIImage_PDF_exampleViewController - UIWindow - - - - YES - - YES - viewController - window - - - YES - - viewController - UIImage_PDF_exampleViewController - - - window - UIWindow - - - - - IBProjectSource - Classes/UIImage_PDF_exampleAppDelegate.h - - - - UIImage_PDF_exampleAppDelegate - NSObject - - IBUserSource - - - - - UIImage_PDF_exampleViewController - UIViewController - - IBProjectSource - Classes/UIImage_PDF_exampleViewController.h - - - - - YES - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIAccessibility.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UINibLoading.h - - - - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UIResponder.h - - - - UIApplication - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIApplication.h - - - - UIResponder - NSObject - - - - UISearchBar - UIView - - IBFrameworkSource - UIKit.framework/Headers/UISearchBar.h - - - - UISearchDisplayController - NSObject - - IBFrameworkSource - UIKit.framework/Headers/UISearchDisplayController.h - - - - UIView - - IBFrameworkSource - UIKit.framework/Headers/UITextField.h - - - - UIView - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIView.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UINavigationController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UIPopoverController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UISplitViewController.h - - - - UIViewController - - IBFrameworkSource - UIKit.framework/Headers/UITabBarController.h - - - - UIViewController - UIResponder - - IBFrameworkSource - UIKit.framework/Headers/UIViewController.h - - - - UIWindow - UIView - - IBFrameworkSource - UIKit.framework/Headers/UIWindow.h - - - - - 0 - IBCocoaTouchFramework - - com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - - - - com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - - - YES - UIImage+PDF example.xcodeproj - 3 - 112 - - diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..4d21fa8 --- /dev/null +++ b/Package.swift @@ -0,0 +1,25 @@ +// swift-tools-version: 5.6 + +import PackageDescription + +let package = Package( + name: "UIImage-PDF", + products: [ + .library( + name: "UIImage-PDF", + targets: ["UIImage-PDF"]), + ], + dependencies: [ + ], + targets: [ + .target( + name: "UIImage-PDF", + dependencies: [] + ), + .testTarget( + name: "UIImage-PDFTests", + dependencies: ["UIImage-PDF"], + resources: [.copy("YinYang.pdf")] + ), + ] +) diff --git a/README.md b/README.md index 439e0db..50a8378 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The `fitSize:`, `atWidth:` and `atHeight:` methods are particularly useful as th For a full API list consult the header file. -An example project is included in this repository. The important code is in `viewDidLoad:` in `UIImage_PDF_exampleViewController.m`. +An example project is included in this repository. The important code is in `viewDidLoad:` in `ViewController.m`. ARC diff --git a/UIImage+PDF/LICENSE.txt b/Sources/UIImage-PDF/LICENSE.txt similarity index 100% rename from UIImage+PDF/LICENSE.txt rename to Sources/UIImage-PDF/LICENSE.txt diff --git a/UIImage+PDF/NSData+MD5.h b/Sources/UIImage-PDF/NSData+MD5.h similarity index 100% rename from UIImage+PDF/NSData+MD5.h rename to Sources/UIImage-PDF/NSData+MD5.h diff --git a/UIImage+PDF/NSData+MD5.m b/Sources/UIImage-PDF/NSData+MD5.m similarity index 100% rename from UIImage+PDF/NSData+MD5.m rename to Sources/UIImage-PDF/NSData+MD5.m diff --git a/UIImage+PDF/NSString+MD5.h b/Sources/UIImage-PDF/NSString+MD5.h similarity index 100% rename from UIImage+PDF/NSString+MD5.h rename to Sources/UIImage-PDF/NSString+MD5.h diff --git a/UIImage+PDF/NSString+MD5.m b/Sources/UIImage-PDF/NSString+MD5.m similarity index 100% rename from UIImage+PDF/NSString+MD5.m rename to Sources/UIImage-PDF/NSString+MD5.m diff --git a/UIImage+PDF/PDFView.h b/Sources/UIImage-PDF/PDFView.h similarity index 100% rename from UIImage+PDF/PDFView.h rename to Sources/UIImage-PDF/PDFView.h diff --git a/UIImage+PDF/PDFView.m b/Sources/UIImage-PDF/PDFView.m similarity index 100% rename from UIImage+PDF/PDFView.m rename to Sources/UIImage-PDF/PDFView.m diff --git a/UIImage+PDF/UIImage+PDF.h b/Sources/UIImage-PDF/UIImage+PDF.h similarity index 100% rename from UIImage+PDF/UIImage+PDF.h rename to Sources/UIImage-PDF/UIImage+PDF.h diff --git a/UIImage+PDF/UIImage+PDF.m b/Sources/UIImage-PDF/UIImage+PDF.m similarity index 100% rename from UIImage+PDF/UIImage+PDF.m rename to Sources/UIImage-PDF/UIImage+PDF.m diff --git a/UIImage+PDF/UIView+Image.h b/Sources/UIImage-PDF/UIView+Image.h similarity index 100% rename from UIImage+PDF/UIView+Image.h rename to Sources/UIImage-PDF/UIView+Image.h diff --git a/UIImage+PDF/UIView+Image.m b/Sources/UIImage-PDF/UIView+Image.m similarity index 100% rename from UIImage+PDF/UIView+Image.m rename to Sources/UIImage-PDF/UIView+Image.m diff --git a/Sources/UIImage-PDF/include/UIImage_PDF.h b/Sources/UIImage-PDF/include/UIImage_PDF.h new file mode 100644 index 0000000..5586151 --- /dev/null +++ b/Sources/UIImage-PDF/include/UIImage_PDF.h @@ -0,0 +1,13 @@ +// +// Header.h +// +// +// Created by Christian Beer on 31.08.22. +// + +#ifndef Header_h +#define Header_h + +#import "../UIImage+PDF.h" + +#endif /* Header_h */ diff --git a/Tests/UIImage-PDFTests/UIImage_PDFTests.swift b/Tests/UIImage-PDFTests/UIImage_PDFTests.swift new file mode 100644 index 0000000..f866128 --- /dev/null +++ b/Tests/UIImage-PDFTests/UIImage_PDFTests.swift @@ -0,0 +1,15 @@ +import XCTest +@testable import UIImage_PDF + +final class UIImage_PDFTests: XCTestCase { + func testExample() throws { + let url = Bundle.module.url(forResource: "YinYang", withExtension: "pdf") + XCTAssertNotNil(url) + + let size = CGSize(width: 200, height: 200) + let image = UIImage(pdfurl: url, at: size) + XCTAssertNotNil(image) + + XCTAssertEqual(image!.size, size) + } +} diff --git a/Tests/UIImage-PDFTests/YinYang.pdf b/Tests/UIImage-PDFTests/YinYang.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8bede7d452137c268368ac335a762d81cf6a7c9c GIT binary patch literal 4613 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 KA)#fY4f;QmnYOL~ literal 0 HcmV?d00001 diff --git a/UIImage_PDF_exampleViewController.xib b/UIImage_PDF_exampleViewController.xib deleted file mode 100644 index e45f6cc..0000000 --- a/UIImage_PDF_exampleViewController.xib +++ /dev/null @@ -1,156 +0,0 @@ - - - - 800 - 10C540 - 759 - 1038.25 - 458.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 77 - - - YES - - - - YES - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - YES - - YES - - - YES - - - - YES - - IBFilesOwner - IBCocoaTouchFramework - - - IBFirstResponder - IBCocoaTouchFramework - - - - 274 - {320, 460} - - - 3 - MC43NQA - - 2 - - - NO - - IBCocoaTouchFramework - - - - - YES - - - view - - - - 7 - - - - - YES - - 0 - - - - - - -1 - - - File's Owner - - - -2 - - - - - 6 - - - - - - - YES - - YES - -1.CustomClassName - -2.CustomClassName - 6.IBEditorWindowLastContentRect - 6.IBPluginDependency - - - YES - UIImage_PDF_exampleViewController - UIResponder - {{239, 654}, {320, 480}} - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - YES - - - - - YES - - - YES - - - - 7 - - - - YES - - UIImage_PDF_exampleViewController - UIViewController - - IBProjectSource - Classes/UIImage_PDF_exampleViewController.h - - - - - 0 - IBCocoaTouchFramework - - com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - - - YES - UIImage+PDF example.xcodeproj - 3 - 77 - - - diff --git a/iPad/MainWindow-iPad.xib b/iPad/MainWindow-iPad.xib deleted file mode 100644 index ab0d1e8..0000000 --- a/iPad/MainWindow-iPad.xib +++ /dev/null @@ -1,202 +0,0 @@ - - - - 1024 - 11D50 - 2182 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 1181 - - - YES - IBUICustomObject - IBUIWindow - IBUIViewController - IBProxyObject - - - YES - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - IBFilesOwner - IBIPadFramework - - - IBFirstResponder - IBIPadFramework - - - IBIPadFramework - - - UIImage_PDF_exampleViewController - - 2 - - - 1 - 1 - - IBIPadFramework - NO - - - - 292 - {768, 1024} - - 1 - MSAxIDEAA - - NO - NO - - IBIPadFramework - YES - - - - - YES - - - delegate - - - - 4 - - - - viewController - - - - 11 - - - - window - - - - 14 - - - - - YES - - 0 - - YES - - - - - - -1 - - - File's Owner - - - 3 - - - UIImage_PDF_example App Delegate - - - -2 - - - - - 10 - - - - - 12 - - - - - - - YES - - YES - -1.CustomClassName - -1.IBPluginDependency - -2.CustomClassName - -2.IBPluginDependency - 10.CustomClassName - 10.IBLastUsedUIStatusBarStylesToTargetRuntimesMap - 10.IBPluginDependency - 12.IBLastUsedUIStatusBarStylesToTargetRuntimesMap - 12.IBPluginDependency - 3.CustomClassName - 3.IBPluginDependency - - - YES - UIApplication - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIResponder - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIImage_PDF_exampleViewController - - IBCocoaTouchFramework - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - IBCocoaTouchFramework - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - UIImage_PDF_exampleAppDelegate - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - YES - - - - - - YES - - - - - 15 - - - 0 - IBIPadFramework - - com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS - - - - com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 - - - YES - 3 - 1181 - - From 767ece2faa7e95539fa6afe9ccefe71cbb072a17 Mon Sep 17 00:00:00 2001 From: Christian Beer Date: Wed, 31 Aug 2022 09:27:57 +0200 Subject: [PATCH 2/2] Added SPM install and Swift usage to README --- README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 50a8378..2788385 100644 --- a/README.md +++ b/README.md @@ -4,12 +4,14 @@ UIImage+PDF `UIImage+PDF` provides a `UIImage` class category method to render a `UIImage` from any PDF stored in the application bundle. The motivation for this was to enable the easy use of scaleable vector assets in `iOS` apps. -Usage ------ +Swift Package Manager +--------------------- + +Add a Swift Package reference to https://github.com/chbeer/UIImage-PDF.git (1.2.0 and higher) -Add the sources files in the `UIImage+PDF` sub folder to your project. Use the following line to import the necessary methods. - #import "UIImage+PDF.h" +Usage +----- Then simply call one of the `UIImage` class methods as shown here: @@ -22,6 +24,10 @@ Then simply call one of the `UIImage` class methods as shown here: UIImage *img = [ UIImage imageWithPDFURL:url atSize:CGSizeMake( 60, 60 ) atPage:1 ]; UIImage *img = [ UIImage imageWithPDFData:data atSize:CGSizeMake( 60, 60 ) atPage:1 ]; + + Swift: + + let img = UIImage(pdfurl: url, at: CGSize(width: 60, height: 60)) The `fitSize:`, `atWidth:` and `atHeight:` methods are particularly useful as they preserve the aspect ratio of the source PDF.