diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..165852e --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated +build/ +DerivedData/ + +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xcuserstate +*.xcworkspacedata + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Podfile.lock +Pods/ + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. +# Carthage/Checkouts + +Carthage/Build + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output + +# Code Injection +# +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ \ No newline at end of file diff --git a/Demo/JPSThumbnailAnnotation-Info.plist b/Demo/JPSThumbnailAnnotation-Info.plist index 30e4991..5860c3f 100644 --- a/Demo/JPSThumbnailAnnotation-Info.plist +++ b/Demo/JPSThumbnailAnnotation-Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Demo/JPSThumbnailAnnotation.xcodeproj/project.pbxproj b/Demo/JPSThumbnailAnnotation.xcodeproj/project.pbxproj index 80f40de..760cba2 100644 --- a/Demo/JPSThumbnailAnnotation.xcodeproj/project.pbxproj +++ b/Demo/JPSThumbnailAnnotation.xcodeproj/project.pbxproj @@ -1,340 +1,924 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 34C69ED51E2561D400149AF5 /* JPSThumbnail.m in Sources */ = {isa = PBXBuildFile; fileRef = 34C69ED41E2561D400149AF5 /* JPSThumbnail.m */; }; - E875D68A17245D6C00009A6F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E875D68917245D6C00009A6F /* Foundation.framework */; }; - E875D69217245D6C00009A6F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = E875D69017245D6C00009A6F /* InfoPlist.strings */; }; - E875D69417245D6C00009A6F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E875D69317245D6C00009A6F /* main.m */; }; - E875D69817245D6C00009A6F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = E875D69717245D6C00009A6F /* AppDelegate.m */; }; - E875D69A17245D6C00009A6F /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = E875D69917245D6C00009A6F /* Default.png */; }; - E875D69C17245D6C00009A6F /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E875D69B17245D6C00009A6F /* Default@2x.png */; }; - E875D69E17245D6C00009A6F /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E875D69D17245D6C00009A6F /* Default-568h@2x.png */; }; - E875D6A117245D6C00009A6F /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E875D6A017245D6C00009A6F /* ViewController.m */; }; - E8B7E7D91724669200E93E96 /* JPSThumbnailAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B7E7D81724669200E93E96 /* JPSThumbnailAnnotation.m */; }; - E8B7E7DC172466B600E93E96 /* JPSThumbnailAnnotationView.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B7E7DB172466B600E93E96 /* JPSThumbnailAnnotationView.m */; }; - E8EF4F2C1725027D0051DB36 /* empire.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E8EF4F2B1725027D0051DB36 /* empire.jpg */; }; - E8EF4F2F1725081E0051DB36 /* ottawa.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E8EF4F2D1725081E0051DB36 /* ottawa.jpg */; }; - E8EF4F301725081E0051DB36 /* apple.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E8EF4F2E1725081E0051DB36 /* apple.jpg */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 34C69ED41E2561D400149AF5 /* JPSThumbnail.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JPSThumbnail.m; sourceTree = ""; }; - E875D68417245D6C00009A6F /* JPSThumbnailAnnotation.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JPSThumbnailAnnotation.app; sourceTree = BUILT_PRODUCTS_DIR; }; - E875D68717245D6C00009A6F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - E875D68917245D6C00009A6F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - E875D68B17245D6C00009A6F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - E875D68F17245D6C00009A6F /* JPSThumbnailAnnotation-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "JPSThumbnailAnnotation-Info.plist"; sourceTree = ""; }; - E875D69117245D6C00009A6F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - E875D69317245D6C00009A6F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - E875D69517245D6C00009A6F /* JPSThumbnailAnnotation-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "JPSThumbnailAnnotation-Prefix.pch"; sourceTree = ""; }; - E875D69617245D6C00009A6F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - E875D69717245D6C00009A6F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - E875D69917245D6C00009A6F /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; }; - E875D69B17245D6C00009A6F /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; }; - E875D69D17245D6C00009A6F /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; - E875D69F17245D6C00009A6F /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = ""; }; - E875D6A017245D6C00009A6F /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; - E875D6AA172461FB00009A6F /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; - E8B7E7D71724669200E93E96 /* JPSThumbnailAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JPSThumbnailAnnotation.h; sourceTree = ""; }; - E8B7E7D81724669200E93E96 /* JPSThumbnailAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JPSThumbnailAnnotation.m; sourceTree = ""; }; - E8B7E7DA172466B600E93E96 /* JPSThumbnailAnnotationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JPSThumbnailAnnotationView.h; sourceTree = ""; }; - E8B7E7DB172466B600E93E96 /* JPSThumbnailAnnotationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JPSThumbnailAnnotationView.m; sourceTree = ""; }; - E8EF4F241724E30C0051DB36 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; - E8EF4F261724E5870051DB36 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; - E8EF4F281724EE840051DB36 /* JPSThumbnail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JPSThumbnail.h; sourceTree = ""; }; - E8EF4F2B1725027D0051DB36 /* empire.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = empire.jpg; sourceTree = ""; }; - E8EF4F2D1725081E0051DB36 /* ottawa.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = ottawa.jpg; sourceTree = ""; }; - E8EF4F2E1725081E0051DB36 /* apple.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = apple.jpg; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - E875D68117245D6C00009A6F /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - E875D68A17245D6C00009A6F /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - E875D67B17245D6C00009A6F = { - isa = PBXGroup; - children = ( - E8B7E7D61724664A00E93E96 /* JPSThumbnailAnnotation */, - E875D68D17245D6C00009A6F /* Classes */, - E875D68617245D6C00009A6F /* Frameworks */, - E875D68517245D6C00009A6F /* Products */, - ); - sourceTree = ""; - }; - E875D68517245D6C00009A6F /* Products */ = { - isa = PBXGroup; - children = ( - E875D68417245D6C00009A6F /* JPSThumbnailAnnotation.app */, - ); - name = Products; - sourceTree = ""; - }; - E875D68617245D6C00009A6F /* Frameworks */ = { - isa = PBXGroup; - children = ( - E8EF4F261724E5870051DB36 /* QuartzCore.framework */, - E8EF4F241724E30C0051DB36 /* CoreLocation.framework */, - E875D6AA172461FB00009A6F /* MapKit.framework */, - E875D68717245D6C00009A6F /* UIKit.framework */, - E875D68917245D6C00009A6F /* Foundation.framework */, - E875D68B17245D6C00009A6F /* CoreGraphics.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - E875D68D17245D6C00009A6F /* Classes */ = { - isa = PBXGroup; - children = ( - E875D69617245D6C00009A6F /* AppDelegate.h */, - E875D69717245D6C00009A6F /* AppDelegate.m */, - E875D69F17245D6C00009A6F /* ViewController.h */, - E875D6A017245D6C00009A6F /* ViewController.m */, - E875D68E17245D6C00009A6F /* Supporting Files */, - ); - name = Classes; - sourceTree = SOURCE_ROOT; - }; - E875D68E17245D6C00009A6F /* Supporting Files */ = { - isa = PBXGroup; - children = ( - E8EF4F2D1725081E0051DB36 /* ottawa.jpg */, - E8EF4F2E1725081E0051DB36 /* apple.jpg */, - E8EF4F2B1725027D0051DB36 /* empire.jpg */, - E875D68F17245D6C00009A6F /* JPSThumbnailAnnotation-Info.plist */, - E875D69017245D6C00009A6F /* InfoPlist.strings */, - E875D69317245D6C00009A6F /* main.m */, - E875D69517245D6C00009A6F /* JPSThumbnailAnnotation-Prefix.pch */, - E875D69917245D6C00009A6F /* Default.png */, - E875D69B17245D6C00009A6F /* Default@2x.png */, - E875D69D17245D6C00009A6F /* Default-568h@2x.png */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - E8B7E7D61724664A00E93E96 /* JPSThumbnailAnnotation */ = { - isa = PBXGroup; - children = ( - 34C69ED41E2561D400149AF5 /* JPSThumbnail.m */, - E8B7E7D71724669200E93E96 /* JPSThumbnailAnnotation.h */, - E8B7E7D81724669200E93E96 /* JPSThumbnailAnnotation.m */, - E8B7E7DA172466B600E93E96 /* JPSThumbnailAnnotationView.h */, - E8B7E7DB172466B600E93E96 /* JPSThumbnailAnnotationView.m */, - E8EF4F281724EE840051DB36 /* JPSThumbnail.h */, - ); - name = JPSThumbnailAnnotation; - path = ../JPSThumbnailAnnotation; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - E875D68317245D6C00009A6F /* JPSThumbnailAnnotation */ = { - isa = PBXNativeTarget; - buildConfigurationList = E875D6A717245D6C00009A6F /* Build configuration list for PBXNativeTarget "JPSThumbnailAnnotation" */; - buildPhases = ( - E875D68017245D6C00009A6F /* Sources */, - E875D68117245D6C00009A6F /* Frameworks */, - E875D68217245D6C00009A6F /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = JPSThumbnailAnnotation; - productName = JPSThumbnailAnnotation; - productReference = E875D68417245D6C00009A6F /* JPSThumbnailAnnotation.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - E875D67C17245D6C00009A6F /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = JPS; - LastUpgradeCheck = 0460; - ORGANIZATIONNAME = "JP Simard"; - }; - buildConfigurationList = E875D67F17245D6C00009A6F /* Build configuration list for PBXProject "JPSThumbnailAnnotation" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = E875D67B17245D6C00009A6F; - productRefGroup = E875D68517245D6C00009A6F /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - E875D68317245D6C00009A6F /* JPSThumbnailAnnotation */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - E875D68217245D6C00009A6F /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E875D69217245D6C00009A6F /* InfoPlist.strings in Resources */, - E875D69A17245D6C00009A6F /* Default.png in Resources */, - E875D69C17245D6C00009A6F /* Default@2x.png in Resources */, - E875D69E17245D6C00009A6F /* Default-568h@2x.png in Resources */, - E8EF4F2C1725027D0051DB36 /* empire.jpg in Resources */, - E8EF4F2F1725081E0051DB36 /* ottawa.jpg in Resources */, - E8EF4F301725081E0051DB36 /* apple.jpg in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - E875D68017245D6C00009A6F /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 34C69ED51E2561D400149AF5 /* JPSThumbnail.m in Sources */, - E875D69417245D6C00009A6F /* main.m in Sources */, - E875D69817245D6C00009A6F /* AppDelegate.m in Sources */, - E875D6A117245D6C00009A6F /* ViewController.m in Sources */, - E8B7E7D91724669200E93E96 /* JPSThumbnailAnnotation.m in Sources */, - E8B7E7DC172466B600E93E96 /* JPSThumbnailAnnotationView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - E875D69017245D6C00009A6F /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - E875D69117245D6C00009A6F /* en */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - E875D6A517245D6C00009A6F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - E875D6A617245D6C00009A6F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.1; - OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - E875D6A817245D6C00009A6F /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "JPSThumbnailAnnotation-Prefix.pch"; - INFOPLIST_FILE = "JPSThumbnailAnnotation-Info.plist"; - PRODUCT_NAME = JPSThumbnailAnnotation; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - E875D6A917245D6C00009A6F /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "JPSThumbnailAnnotation-Prefix.pch"; - INFOPLIST_FILE = "JPSThumbnailAnnotation-Info.plist"; - PRODUCT_NAME = JPSThumbnailAnnotation; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - E875D67F17245D6C00009A6F /* Build configuration list for PBXProject "JPSThumbnailAnnotation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E875D6A517245D6C00009A6F /* Debug */, - E875D6A617245D6C00009A6F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E875D6A717245D6C00009A6F /* Build configuration list for PBXNativeTarget "JPSThumbnailAnnotation" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E875D6A817245D6C00009A6F /* Debug */, - E875D6A917245D6C00009A6F /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = E875D67C17245D6C00009A6F /* Project object */; -} + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 03DBE47DEB8557C12E876BB4 + + explicitFileType + archive.ar + includeInIndex + 0 + isa + PBXFileReference + path + libPods-JPSThumbnailAnnotation.a + sourceTree + BUILT_PRODUCTS_DIR + + 4122CF67B3EF72ED935B4574 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-JPSThumbnailAnnotation.debug.xcconfig + path + Pods/Target Support Files/Pods-JPSThumbnailAnnotation/Pods-JPSThumbnailAnnotation.debug.xcconfig + sourceTree + <group> + + 59B1CD4F4FB50CDB02EDD7CE + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + [CP] Embed Pods Frameworks + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + "${SRCROOT}/Pods/Target Support Files/Pods-JPSThumbnailAnnotation/Pods-JPSThumbnailAnnotation-frameworks.sh" + + showEnvVarsInLog + 0 + + 5B24D84FE82C69199D5F2114 + + fileRef + 03DBE47DEB8557C12E876BB4 + isa + PBXBuildFile + + 5B4369E8005C2055CE616A42 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + name + Pods-JPSThumbnailAnnotation.release.xcconfig + path + Pods/Target Support Files/Pods-JPSThumbnailAnnotation/Pods-JPSThumbnailAnnotation.release.xcconfig + sourceTree + <group> + + 79B7C8623996E0BFADAA17B1 + + children + + 4122CF67B3EF72ED935B4574 + 5B4369E8005C2055CE616A42 + + isa + PBXGroup + name + Pods + sourceTree + <group> + + B54217C5F1CFE39C6D701FD2 + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + [CP] Check Pods Manifest.lock + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + diff "${PODS_ROOT}/../Podfile.lock" "${PODS_ROOT}/Manifest.lock" > /dev/null +if [[ $? != 0 ]] ; then + cat << EOM +error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. +EOM + exit 1 +fi + + showEnvVarsInLog + 0 + + C9E7DA168F38CB76C97DE880 + + buildActionMask + 2147483647 + files + + inputPaths + + isa + PBXShellScriptBuildPhase + name + [CP] Copy Pods Resources + outputPaths + + runOnlyForDeploymentPostprocessing + 0 + shellPath + /bin/sh + shellScript + "${SRCROOT}/Pods/Target Support Files/Pods-JPSThumbnailAnnotation/Pods-JPSThumbnailAnnotation-resources.sh" + + showEnvVarsInLog + 0 + + E875D67B17245D6C00009A6F + + children + + E875D68D17245D6C00009A6F + E875D68617245D6C00009A6F + E875D68517245D6C00009A6F + 79B7C8623996E0BFADAA17B1 + + isa + PBXGroup + sourceTree + <group> + + E875D67C17245D6C00009A6F + + attributes + + CLASSPREFIX + JPS + LastUpgradeCheck + 0820 + ORGANIZATIONNAME + JP Simard + + buildConfigurationList + E875D67F17245D6C00009A6F + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + + mainGroup + E875D67B17245D6C00009A6F + productRefGroup + E875D68517245D6C00009A6F + projectDirPath + + projectReferences + + projectRoot + + targets + + E875D68317245D6C00009A6F + + + E875D67F17245D6C00009A6F + + buildConfigurations + + E875D6A517245D6C00009A6F + E875D6A617245D6C00009A6F + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E875D68017245D6C00009A6F + + buildActionMask + 2147483647 + files + + E875D69417245D6C00009A6F + E875D69817245D6C00009A6F + E875D6A117245D6C00009A6F + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E875D68117245D6C00009A6F + + buildActionMask + 2147483647 + files + + E875D68A17245D6C00009A6F + 5B24D84FE82C69199D5F2114 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E875D68217245D6C00009A6F + + buildActionMask + 2147483647 + files + + E875D69217245D6C00009A6F + E875D69A17245D6C00009A6F + E875D69C17245D6C00009A6F + E875D69E17245D6C00009A6F + E8EF4F2C1725027D0051DB36 + E8EF4F2F1725081E0051DB36 + E8EF4F301725081E0051DB36 + + isa + PBXResourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E875D68317245D6C00009A6F + + buildConfigurationList + E875D6A717245D6C00009A6F + buildPhases + + B54217C5F1CFE39C6D701FD2 + E875D68017245D6C00009A6F + E875D68117245D6C00009A6F + E875D68217245D6C00009A6F + 59B1CD4F4FB50CDB02EDD7CE + C9E7DA168F38CB76C97DE880 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + JPSThumbnailAnnotation + productName + JPSThumbnailAnnotation + productReference + E875D68417245D6C00009A6F + productType + com.apple.product-type.application + + E875D68417245D6C00009A6F + + explicitFileType + wrapper.application + includeInIndex + 0 + isa + PBXFileReference + path + JPSThumbnailAnnotation.app + sourceTree + BUILT_PRODUCTS_DIR + + E875D68517245D6C00009A6F + + children + + E875D68417245D6C00009A6F + + isa + PBXGroup + name + Products + sourceTree + <group> + + E875D68617245D6C00009A6F + + children + + E8EF4F261724E5870051DB36 + E8EF4F241724E30C0051DB36 + E875D6AA172461FB00009A6F + E875D68717245D6C00009A6F + E875D68917245D6C00009A6F + E875D68B17245D6C00009A6F + 03DBE47DEB8557C12E876BB4 + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + E875D68717245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + UIKit.framework + path + System/Library/Frameworks/UIKit.framework + sourceTree + SDKROOT + + E875D68917245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + System/Library/Frameworks/Foundation.framework + sourceTree + SDKROOT + + E875D68A17245D6C00009A6F + + fileRef + E875D68917245D6C00009A6F + isa + PBXBuildFile + + E875D68B17245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + CoreGraphics.framework + path + System/Library/Frameworks/CoreGraphics.framework + sourceTree + SDKROOT + + E875D68D17245D6C00009A6F + + children + + E875D69617245D6C00009A6F + E875D69717245D6C00009A6F + E875D69F17245D6C00009A6F + E875D6A017245D6C00009A6F + E875D68E17245D6C00009A6F + + isa + PBXGroup + name + Classes + sourceTree + SOURCE_ROOT + + E875D68E17245D6C00009A6F + + children + + E8EF4F2D1725081E0051DB36 + E8EF4F2E1725081E0051DB36 + E8EF4F2B1725027D0051DB36 + E875D68F17245D6C00009A6F + E875D69017245D6C00009A6F + E875D69317245D6C00009A6F + E875D69517245D6C00009A6F + E875D69917245D6C00009A6F + E875D69B17245D6C00009A6F + E875D69D17245D6C00009A6F + + isa + PBXGroup + name + Supporting Files + sourceTree + <group> + + E875D68F17245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + JPSThumbnailAnnotation-Info.plist + sourceTree + <group> + + E875D69017245D6C00009A6F + + children + + E875D69117245D6C00009A6F + + isa + PBXVariantGroup + name + InfoPlist.strings + sourceTree + <group> + + E875D69117245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + text.plist.strings + name + en + path + en.lproj/InfoPlist.strings + sourceTree + <group> + + E875D69217245D6C00009A6F + + fileRef + E875D69017245D6C00009A6F + isa + PBXBuildFile + + E875D69317245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + main.m + sourceTree + <group> + + E875D69417245D6C00009A6F + + fileRef + E875D69317245D6C00009A6F + isa + PBXBuildFile + + E875D69517245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + JPSThumbnailAnnotation-Prefix.pch + sourceTree + <group> + + E875D69617245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + AppDelegate.h + sourceTree + <group> + + E875D69717245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + AppDelegate.m + sourceTree + <group> + + E875D69817245D6C00009A6F + + fileRef + E875D69717245D6C00009A6F + isa + PBXBuildFile + + E875D69917245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + image.png + path + Default.png + sourceTree + <group> + + E875D69A17245D6C00009A6F + + fileRef + E875D69917245D6C00009A6F + isa + PBXBuildFile + + E875D69B17245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + image.png + path + Default@2x.png + sourceTree + <group> + + E875D69C17245D6C00009A6F + + fileRef + E875D69B17245D6C00009A6F + isa + PBXBuildFile + + E875D69D17245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + image.png + path + Default-568h@2x.png + sourceTree + <group> + + E875D69E17245D6C00009A6F + + fileRef + E875D69D17245D6C00009A6F + isa + PBXBuildFile + + E875D69F17245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + ViewController.h + sourceTree + <group> + + E875D6A017245D6C00009A6F + + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + ViewController.m + sourceTree + <group> + + E875D6A117245D6C00009A6F + + fileRef + E875D6A017245D6C00009A6F + isa + PBXBuildFile + + E875D6A517245D6C00009A6F + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INFINITE_RECURSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_SUSPICIOUS_MOVE + YES + CLANG_WARN_UNREACHABLE_CODE + YES + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + COPY_PHASE_STRIP + NO + ENABLE_STRICT_OBJC_MSGSEND + YES + ENABLE_TESTABILITY + YES + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_NO_COMMON_BLOCKS + YES + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + 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 + 8.0 + ONLY_ACTIVE_ARCH + YES + SDKROOT + iphoneos + + isa + XCBuildConfiguration + name + Debug + + E875D6A617245D6C00009A6F + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INFINITE_RECURSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_SUSPICIOUS_MOVE + YES + CLANG_WARN_UNREACHABLE_CODE + YES + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + COPY_PHASE_STRIP + YES + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_C_LANGUAGE_STANDARD + gnu99 + 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 + 8.0 + OTHER_CFLAGS + -DNS_BLOCK_ASSERTIONS=1 + SDKROOT + iphoneos + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + E875D6A717245D6C00009A6F + + buildConfigurations + + E875D6A817245D6C00009A6F + E875D6A917245D6C00009A6F + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E875D6A817245D6C00009A6F + + baseConfigurationReference + 4122CF67B3EF72ED935B4574 + buildSettings + + CLANG_ENABLE_MODULES + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + JPSThumbnailAnnotation-Prefix.pch + INFOPLIST_FILE + JPSThumbnailAnnotation-Info.plist + PRODUCT_BUNDLE_IDENTIFIER + com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + PRODUCT_NAME + JPSThumbnailAnnotation + TARGETED_DEVICE_FAMILY + 1,2 + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Debug + + E875D6A917245D6C00009A6F + + baseConfigurationReference + 5B4369E8005C2055CE616A42 + buildSettings + + CLANG_ENABLE_MODULES + YES + GCC_PRECOMPILE_PREFIX_HEADER + YES + GCC_PREFIX_HEADER + JPSThumbnailAnnotation-Prefix.pch + INFOPLIST_FILE + JPSThumbnailAnnotation-Info.plist + PRODUCT_BUNDLE_IDENTIFIER + com.yourcompany.${PRODUCT_NAME:rfc1034identifier} + PRODUCT_NAME + JPSThumbnailAnnotation + TARGETED_DEVICE_FAMILY + 1,2 + WRAPPER_EXTENSION + app + + isa + XCBuildConfiguration + name + Release + + E875D6AA172461FB00009A6F + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + MapKit.framework + path + System/Library/Frameworks/MapKit.framework + sourceTree + SDKROOT + + E8EF4F241724E30C0051DB36 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + CoreLocation.framework + path + System/Library/Frameworks/CoreLocation.framework + sourceTree + SDKROOT + + E8EF4F261724E5870051DB36 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + QuartzCore.framework + path + System/Library/Frameworks/QuartzCore.framework + sourceTree + SDKROOT + + E8EF4F2B1725027D0051DB36 + + isa + PBXFileReference + lastKnownFileType + image.jpeg + path + empire.jpg + sourceTree + <group> + + E8EF4F2C1725027D0051DB36 + + fileRef + E8EF4F2B1725027D0051DB36 + isa + PBXBuildFile + + E8EF4F2D1725081E0051DB36 + + isa + PBXFileReference + lastKnownFileType + image.jpeg + path + ottawa.jpg + sourceTree + <group> + + E8EF4F2E1725081E0051DB36 + + isa + PBXFileReference + lastKnownFileType + image.jpeg + path + apple.jpg + sourceTree + <group> + + E8EF4F2F1725081E0051DB36 + + fileRef + E8EF4F2D1725081E0051DB36 + isa + PBXBuildFile + + E8EF4F301725081E0051DB36 + + fileRef + E8EF4F2E1725081E0051DB36 + isa + PBXBuildFile + + + rootObject + E875D67C17245D6C00009A6F + + diff --git a/Demo/Podfile b/Demo/Podfile new file mode 100644 index 0000000..e587b69 --- /dev/null +++ b/Demo/Podfile @@ -0,0 +1,11 @@ +# Uncomment this line to define a global platform for your project +platform :ios, '8.0' + +target 'JPSThumbnailAnnotation' do + # Uncomment this line if you're using Swift or would like to use dynamic frameworks + # use_frameworks! + + # Pods for JPSThumbnailAnnotation + pod 'JPSThumbnailAnnotation', :path => '../' + +end \ No newline at end of file diff --git a/Demo/ViewController.m b/Demo/ViewController.m index f422c3f..ea29775 100644 --- a/Demo/ViewController.m +++ b/Demo/ViewController.m @@ -54,9 +54,21 @@ - (NSArray *)annotations { ottawa.coordinate = CLLocationCoordinate2DMake(45.43f, -75.70f); ottawa.disclosureBlock = ^{ NSLog(@"selected Ottawa"); }; + // Web Image Example + // Seattle Space Needle Building + JPSThumbnail *spaceNeedle = [[JPSThumbnail alloc] init]; + NSString *stringUrl = @"https://upload.wikimedia.org/wikipedia/commons/2/23/Space_Needle_2011-07-04.jpg"; // Non-squared big image + spaceNeedle.imageUrl = [NSURL URLWithString:stringUrl]; // Set web image from url + spaceNeedle.contentMode = UIViewContentModeScaleAspectFit; // Set image Aspect to see all image + spaceNeedle.title = @"Space Needle"; + spaceNeedle.subtitle = @"Seattle Landmark"; + spaceNeedle.coordinate = CLLocationCoordinate2DMake(47.6205f, -122.3493f); + spaceNeedle.disclosureBlock = ^{ NSLog(@"selected Space Needle"); }; + return @[[JPSThumbnailAnnotation annotationWithThumbnail:empire], [JPSThumbnailAnnotation annotationWithThumbnail:apple], - [JPSThumbnailAnnotation annotationWithThumbnail:ottawa]]; + [JPSThumbnailAnnotation annotationWithThumbnail:ottawa], + [JPSThumbnailAnnotation annotationWithThumbnail:spaceNeedle]]; } #pragma mark - MKMapViewDelegate diff --git a/JPSThumbnailAnnotation.podspec b/JPSThumbnailAnnotation.podspec index 97ff13d..2693027 100644 --- a/JPSThumbnailAnnotation.podspec +++ b/JPSThumbnailAnnotation.podspec @@ -10,7 +10,9 @@ Pod::Spec.new do |s| s.description = 'JPSThumbnailAnnotation is a simple mapkit annotation view for displaying images with clean design and animations.' + s.ios.deployment_target = '7.0' s.source_files = 'JPSThumbnailAnnotation/*.{h,m}' s.frameworks = 'QuartzCore', 'MapKit', 'CoreLocation' s.requires_arc = true + s.dependency 'SDWebImage' end diff --git a/JPSThumbnailAnnotation/JPSThumbnail.h b/JPSThumbnailAnnotation/JPSThumbnail.h index e04458d..f97480c 100644 --- a/JPSThumbnailAnnotation/JPSThumbnail.h +++ b/JPSThumbnailAnnotation/JPSThumbnail.h @@ -14,6 +14,7 @@ typedef void (^ActionBlock)(); @interface JPSThumbnail : NSObject @property (nonatomic, strong) UIImage *image; +@property (nonatomic, strong) NSURL *imageUrl; @property (nonatomic, copy) NSString *title; @property (nonatomic, copy) NSString *subtitle; @property (nonatomic, assign) CLLocationCoordinate2D coordinate; diff --git a/JPSThumbnailAnnotation/JPSThumbnailAnnotationView.m b/JPSThumbnailAnnotation/JPSThumbnailAnnotationView.m index a288c40..1dd5828 100755 --- a/JPSThumbnailAnnotation/JPSThumbnailAnnotationView.m +++ b/JPSThumbnailAnnotation/JPSThumbnailAnnotationView.m @@ -9,6 +9,7 @@ @import QuartzCore; #import "JPSThumbnailAnnotationView.h" #import "JPSThumbnail.h" +#import NSString * const kJPSThumbnailAnnotationViewReuseID = @"JPSThumbnailAnnotationView"; @@ -138,7 +139,19 @@ - (void)updateWithThumbnail:(JPSThumbnail *)thumbnail { self.coordinate = thumbnail.coordinate; self.titleLabel.text = thumbnail.title; self.subtitleLabel.text = thumbnail.subtitle; - self.imageView.image = thumbnail.image; + if(thumbnail.imageUrl){ + [self.imageView setIndicatorStyle:UIActivityIndicatorViewStyleGray]; + [self.imageView setShowActivityIndicatorView:YES]; + [self.imageView sd_setImageWithURL:thumbnail.imageUrl + placeholderImage:thumbnail.image + options:SDWebImageAllowInvalidSSLCertificates + completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) { + [self.imageView setShowActivityIndicatorView:NO]; + }]; + } + else{ + self.imageView.image = thumbnail.image; + } self.disclosureBlock = thumbnail.disclosureBlock; self.imageView.contentMode = thumbnail.contentMode; }