From 05d97e747c12346d793893c9e2389e1fb4120de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Je=CC=81ro=CC=82me=20Morissard?= Date: Wed, 26 Apr 2017 13:59:31 +0200 Subject: [PATCH] Update projects (syntax and demo) --- JMHoledView.podspec | 4 +- JMHoledView.xcodeproj/project.pbxproj | 10 +- .../xcshareddata/JMHoledView.xccheckout | 41 ++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 16890 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 5 + .../AppIcon.appiconset/Contents.json | 137 +++++++++++++++++- .../AppIcon.appiconset/Icon-120.png | Bin 0 -> 5657 bytes .../AppIcon.appiconset/Icon-72.png | Bin 0 -> 4506 bytes .../AppIcon.appiconset/Icon-72@2x.png | Bin 0 -> 6495 bytes .../AppIcon.appiconset/Icon-76.png | Bin 0 -> 4584 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 0 -> 6827 bytes .../AppIcon.appiconset/Icon-Small-50.png | Bin 0 -> 3874 bytes .../AppIcon.appiconset/Icon-Small.png | Bin 0 -> 3300 bytes .../AppIcon.appiconset/Icon-Small@2x.png | Bin 0 -> 4081 bytes .../Icon-Spotlight-iOS7.png | Bin 0 -> 3579 bytes .../Icon-Spotlight-iOS7@2x.png | Bin 0 -> 4682 bytes .../Icon-iPad-Spotlight-iOS7@2x.png | Bin 0 -> 5149 bytes .../AppIcon.appiconset/Icon.png | Bin 0 -> 4064 bytes .../AppIcon.appiconset/Icon@2x.png | Bin 0 -> 5533 bytes JMHoledView/JMHoledView-Info.plist | 2 + JMHoledView/JMHoledView/JMHoledView.h | 32 +++- JMHoledView/JMHoledView/JMHoledView.m | 60 ++++++-- JMHoledView/JMViewController.m | 20 +-- JMHoledView/LaunchScreen.storyboard | 48 ++++++ 24 files changed, 323 insertions(+), 36 deletions(-) create mode 100644 JMHoledView.xcodeproj/project.xcworkspace/xcshareddata/JMHoledView.xccheckout create mode 100644 JMHoledView.xcodeproj/project.xcworkspace/xcuserdata/jeromemorissard.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 JMHoledView.xcodeproj/xcuserdata/jeromemorissard.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-120.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-72.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-76.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small-50.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small@2x.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-iOS7.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-iOS7@2x.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-iPad-Spotlight-iOS7@2x.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon.png create mode 100644 JMHoledView/Images.xcassets/AppIcon.appiconset/Icon@2x.png create mode 100644 JMHoledView/LaunchScreen.storyboard diff --git a/JMHoledView.podspec b/JMHoledView.podspec index d67b50c..9286dba 100644 --- a/JMHoledView.podspec +++ b/JMHoledView.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "JMHoledView" - s.version = "0.1.1" + s.version = "0.1.2" s.summary = "UIView subclass designed to be filled with holes" s.requires_arc = true @@ -15,7 +15,7 @@ Pod::Spec.new do |s| s.license = 'MIT' s.author = { "jerome Morissard" => "morissardj@gmail.com" } s.platform = :ios, '5.0' - s.source = { :git => "https://github.com/leverdeterre/JMHoledView.git", :tag => "0.1.1" } + s.source = { :git => "https://github.com/leverdeterre/JMHoledView.git", :tag => "0.1.2" } s.source_files = 'Classes', 'JMHoledView/JMHoledView/*.{h,m}' s.public_header_files = 'JMHoledView/JMHoledView/*.h' end diff --git a/JMHoledView.xcodeproj/project.pbxproj b/JMHoledView.xcodeproj/project.pbxproj index 18ec50f..1eb8bbf 100644 --- a/JMHoledView.xcodeproj/project.pbxproj +++ b/JMHoledView.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + C22E69B41EB0C02B00BD0D41 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C22E69B31EB0C02B00BD0D41 /* LaunchScreen.storyboard */; }; + C22E69B61EB0C24200BD0D41 /* JMHoledView.podspec in Resources */ = {isa = PBXBuildFile; fileRef = C22E69B51EB0C24200BD0D41 /* JMHoledView.podspec */; }; C252CA5D1A7E02EC00145A39 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C252CA5C1A7E02EC00145A39 /* Foundation.framework */; }; C252CA5F1A7E02EC00145A39 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C252CA5E1A7E02EC00145A39 /* CoreGraphics.framework */; }; C252CA611A7E02EC00145A39 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C252CA601A7E02EC00145A39 /* UIKit.framework */; }; @@ -35,6 +37,8 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + C22E69B31EB0C02B00BD0D41 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + C22E69B51EB0C24200BD0D41 /* JMHoledView.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = JMHoledView.podspec; sourceTree = SOURCE_ROOT; }; C252CA591A7E02EC00145A39 /* JMHoledView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JMHoledView.app; sourceTree = BUILT_PRODUCTS_DIR; }; C252CA5C1A7E02EC00145A39 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; C252CA5E1A7E02EC00145A39 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -116,11 +120,13 @@ C252CA621A7E02EC00145A39 /* JMHoledView */ = { isa = PBXGroup; children = ( + C22E69B51EB0C24200BD0D41 /* JMHoledView.podspec */, C252CA6B1A7E02EC00145A39 /* JMAppDelegate.h */, C252CA6C1A7E02EC00145A39 /* JMAppDelegate.m */, C252CA6E1A7E02EC00145A39 /* Main_iPhone.storyboard */, C252CA741A7E02EC00145A39 /* JMViewController.h */, C252CA751A7E02EC00145A39 /* JMViewController.m */, + C22E69B31EB0C02B00BD0D41 /* LaunchScreen.storyboard */, C252CA771A7E02EC00145A39 /* Images.xcassets */, C252CA631A7E02EC00145A39 /* Supporting Files */, ); @@ -244,6 +250,8 @@ buildActionMask = 2147483647; files = ( C252CA781A7E02EC00145A39 /* Images.xcassets in Resources */, + C22E69B41EB0C02B00BD0D41 /* LaunchScreen.storyboard in Resources */, + C22E69B61EB0C24200BD0D41 /* JMHoledView.podspec in Resources */, C252CA701A7E02EC00145A39 /* Main_iPhone.storyboard in Resources */, C252CA671A7E02EC00145A39 /* InfoPlist.strings in Resources */, ); @@ -393,7 +401,6 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "JMHoledView/JMHoledView-Prefix.pch"; INFOPLIST_FILE = "JMHoledView/JMHoledView-Info.plist"; @@ -407,7 +414,6 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "JMHoledView/JMHoledView-Prefix.pch"; INFOPLIST_FILE = "JMHoledView/JMHoledView-Info.plist"; diff --git a/JMHoledView.xcodeproj/project.xcworkspace/xcshareddata/JMHoledView.xccheckout b/JMHoledView.xcodeproj/project.xcworkspace/xcshareddata/JMHoledView.xccheckout new file mode 100644 index 0000000..83ac9af --- /dev/null +++ b/JMHoledView.xcodeproj/project.xcworkspace/xcshareddata/JMHoledView.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 6D0F41E4-FD97-41C4-B7E6-FAB43E1812D3 + IDESourceControlProjectName + JMHoledView + IDESourceControlProjectOriginsDictionary + + F680B4650B3E340418B15DE0C6215573DDB0C76C + https://github.com/leverdeterre/JMHoledView.git + + IDESourceControlProjectPath + JMHoledView.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + F680B4650B3E340418B15DE0C6215573DDB0C76C + ../.. + + IDESourceControlProjectURL + https://github.com/leverdeterre/JMHoledView.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + F680B4650B3E340418B15DE0C6215573DDB0C76C + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + F680B4650B3E340418B15DE0C6215573DDB0C76C + IDESourceControlWCCName + JMHoledView + + + + diff --git a/JMHoledView.xcodeproj/project.xcworkspace/xcuserdata/jeromemorissard.xcuserdatad/UserInterfaceState.xcuserstate b/JMHoledView.xcodeproj/project.xcworkspace/xcuserdata/jeromemorissard.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..1621cf4c43edbee700f55172d93812dbe7f07711 GIT binary patch literal 16890 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 literal 0 HcmV?d00001 diff --git a/JMHoledView.xcodeproj/xcuserdata/jeromemorissard.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/JMHoledView.xcodeproj/xcuserdata/jeromemorissard.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ b/JMHoledView.xcodeproj/xcuserdata/jeromemorissard.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,5 @@ + + + diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Contents.json b/JMHoledView/Images.xcassets/AppIcon.appiconset/Contents.json index 91bf9c1..77a3c04 100644 --- a/JMHoledView/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/JMHoledView/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,10 +1,30 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x" + }, { "idiom" : "iphone", "size" : "29x29", "scale" : "2x" }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "40x40", @@ -12,12 +32,47 @@ }, { "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon.png", + "scale" : "1x" + }, + { + "size" : "57x57", + "idiom" : "iphone", + "filename" : "Icon@2x.png", + "scale" : "2x" + }, + { "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-120.png", "scale" : "2x" }, { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "size" : "20x20", "idiom" : "ipad", + "filename" : "Icon-Spotlight-iOS7.png", + "scale" : "2x" + }, + { "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-Small.png", "scale" : "1x" }, { @@ -36,14 +91,94 @@ "scale" : "2x" }, { + "size" : "50x50", "idiom" : "ipad", - "size" : "76x76", + "filename" : "Icon-Small-50.png", + "scale" : "1x" + }, + { + "size" : "50x50", + "idiom" : "ipad", + "filename" : "Icon-iPad-Spotlight-iOS7@2x.png", + "scale" : "2x" + }, + { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Icon-72.png", "scale" : "1x" }, { + "size" : "72x72", + "idiom" : "ipad", + "filename" : "Icon-72@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", "idiom" : "ipad", + "filename" : "Icon-76.png", + "scale" : "1x" + }, + { "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76@2x.png", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "size" : "24x24", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "38mm" + }, + { + "size" : "27.5x27.5", + "idiom" : "watch", + "scale" : "2x", + "role" : "notificationCenter", + "subtype" : "42mm" + }, + { + "size" : "29x29", + "idiom" : "watch", + "filename" : "Icon-Small@2x.png", + "role" : "companionSettings", "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "watch", + "filename" : "Icon-Spotlight-iOS7@2x.png", + "scale" : "2x", + "role" : "appLauncher", + "subtype" : "38mm" + }, + { + "size" : "86x86", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "38mm" + }, + { + "size" : "98x98", + "idiom" : "watch", + "scale" : "2x", + "role" : "quickLook", + "subtype" : "42mm" } ], "info" : { diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-120.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-120.png new file mode 100644 index 0000000000000000000000000000000000000000..f5b7fef0ca97c9b3b27b57c9987e36a12a355070 GIT binary patch literal 5657 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-72.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-72.png new file mode 100644 index 0000000000000000000000000000000000000000..7ec55dab667583d60b270fae5612ba734c401926 GIT binary patch literal 4506 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-72@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c7ac21d24fbbe78d9471b25d3b8c3e536b43a44a GIT binary patch literal 6495 zcmds+{;W%Wj4WN4$0qT8kgcUAQXheCm-(&iOVyyoPNDIayHNxs%wYLYUUMm5A-l1f& zvdYy4k(WmT;kNC+`MPvD-_1URC9{buvf}~>m1o4HLpf)kyH>XJbf7U|0X?(5L42OrX*)7L^ zT?@-hq52q^;lNviQ_cf)o_u^BY}xgoS`bAIxMVlZVMKPO8vvTzaG{&4)jG#4fHNFG z)6$o7rWjZAl>RkhE~2=D1J`$0`7Q#yJL0$b5gwymF%nl~O3}u6vjGBJh6u zhMCAT)_qk|o=t!2k~q=Uo1=)2u6Q}hwFmel3GaOYp$J?60_3wKVF(xY#9m?nM1`w? zu|H!Ar~#dzphkJw`9}!~&13mSI(q_s!UHEk+7V)&xTc`D-6Wnw#Nnz?!k8Wn2-XtZ z2|wZlOjRUbnMD1SEK6Y){L~mfKv7=zB_;NNA|eT#0{u71Sx);rva(Q7SLWi`d-^tf zv&fqQyh#=jTntu76nQ3a+KOZz&>X%{FU5eb+B>$QZ?|2S<;qXn$@Q# z0KRC8-c)?(Fh2H_iV^?G2!ProOqC3|gP<9;Z#%A}

@1v_ZwO!TAI{n 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-76.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-76.png new file mode 100644 index 0000000000000000000000000000000000000000..4dbb3dcca6556b4e9d313bf93bae8cd5eebdb750 GIT binary patch literal 4584 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 SQRUwU2LOXSSFKaF3jYsTJJy5% literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c2d24bc68965a0414c527c1980c95942b1e0c552 GIT binary patch literal 6827 zcmds6^-~mHv|nI}1*E%US-$il2%^GL3#_zsFWrKQbS@*PJ96YB?z95dt=PI;7?I=XB z7H&is#8VMpiH4F--$u6^M>&$q8cstJin5vo9aCrx^k^%>Hx^@^K?l`OPL{In291{I zHk)VX><k{qo02r zuDa%y*#dR$q`&#z=p8|J$8+UkbB&f=cB@1%bbxcPaW-p1XR02c(Um}UW3@{2fCF%h z4`^Kac)}LpVxHXphm@BjW_Q=+9ZsIJu)sgbn>>`;a94!XMdrxz8H zzEM(IqN+GLN=lYKZgY1*@vzn{<@kN5Pw-=2H~mrgKRxY#DWI?@hxYInA%=;Dd6Nlc?(ud2y$>HIw>O|W^(Qy|D#xE$uvgG-f2=<$hIJVY3ZD~No=5-jG9x5NPm z3s#}POT!aZ!F7}cewLH@g)KqRUpStjPVRu|5Z@m_4U~jCfho|S`;j{dX|S>^aYTKkqC82L0ceKkw{lWo+-N+nAn9X7btC_TZhqN2`z{?+*SYngbMh&$~k_ zf6h+gAeJDuG>8Z={VOnEW@Csh!imcaA`QWCqKBT@D8FSek~PWnNWE;8^^x^aD1P;*?De!^MMhhWu_i__;AMb_GFmMCBzoVt_l z$D^4to9>lvA)Lo+!5Q@OzT~zASGz~HM<=APPCs91wXs(^90AWNNVWQ4m1PxW75eAN zS8bk-p~y?ISB%B6=-BqygcI?bIsza?rN%^y1WQm^=5^ZTcArP`(9 zq$X6T>AB6&%;Z$KR%lK`oghw@PIFE-Gs2Z|)Xe=+T|1tJ7^(c~ zn!Qq?37MkBO6h9rvIax@LXCzoYO`cv6G^#d(`Fqnc}-OjLlKKw?Sp(7?Y!!|qAukw zlc3@59~|?@7`g18vi#`$F3ViY!c}YTiloX3{zBuz=L1izzr2Y)l36o>)J5eWk`Zx3 z>N>xsmvoVB8XV+f9^DMKvMY?v4 z_VIJFbFLf6jVPgXq<18S?BbV)=YQ>C0W*|4|5jVZj$+pcdHs0nrx2yfIYwiAV~@rP zNl57r>8FJl-cGz(ZDDzvBy1xbYvJvlKdtvWbU`i=^lWCm9{6l)JL6SjjbMl4Nfzv^$%rluNnK&8hPS4KD0Fg_}JKQ_Z>&27V z!_Dj28%^L-U=`>eaS>1ns81+E@)$&g{~p-agVWQFVi%dT0Gm$J;mY4Cc!s|KJs~xt zy?)0aEGS+D+4X7B^A7a(0t#8d6&3p1RT92Uep8N#qf@2xQW{eJ3ZGF{hx@_P;i~C| zf<_JNO0mYV93|3p?98-&V9&SZ7n6&sk!!nuh}ZUo#Z1#0cIV$VZIq9U*Cbl>7`@?V zV`gVvrg(^=?k(R?t2wo3_1XZ=qT3^Hk~aqgHsg-WE^Tj*XnlDTRDui%XETiiL%*3R5F(Q59g;0gIVaJ($ zJ?aA4i6piE-Wl1oXT;yDovFlvvw1>|NE)0zFWD>G<_&9)QvN+%&su*y!a8&^bQAc* z?uplX`%cgMh})hg`_5$5;Xi9kf46FQnf0`-o^|ddxN^9v%pHy>jl|h9FTajnn%4fL zUDt_pXgK&gAm1vly^0YUGa+;N>O$+Xw`kW;?esgH%Y5R@YUEG!A5ETxe?Sv+9k}{$jTMn)h<%2Y=6YExQIy;l$y6C6r;KVd)6^cA@25E$8~x za$&WqZ+xd}S;;cV6p7xrD`yIR z)RkLWVuh`jz^9y2M}Gz{*$;9_U(ESL2UKkF-sPQt`C%Mwod0v-XVjM>2}eIQzvZpq zsT|fZRv}pSga2vld1h9_u)XSd(irW>Y^gl2z+?G=@S~V0`p9Pn9x`o>>ytS(bu~*P zA?dZ|N3Czme`9WL_0lWtYoyGc2jm1`_9E`$ezLXardjL;I&L)`xMH^48}8E9s^dHH z12(VCZbX*O+X6P?A99%SVhFDHg**Ko%on7$0+#M32+PUMVWYlJ?;P%|ch?Gdi8c9i zD`3@kGncb=<(SjmPqWDJh7a}$5iJTL52;tRntk}=<>LZMjY`|f)ym_sSFww}^`~DC zM`F{b*225^?!R25PE_Uvdfi~`t%mv!ohNoOVK0};I;F0Ep1W?^{9B*$ay%$0jb5tk zgq?@n<=w}MI3jgDZ<|3kphYAw32nQ1bQ-hg>S0X^<5sGZyNff!kVTS;1_7DAWi?sbj z!?fHSM1Kf`Kece7i2vYzTWaoVZH}H=6q8;Q)0387e?FAAUr{4tcJ}?kKrioIMO)Hl zOaTRsGSSBs6_FXL5L{d^L(~cl4%H}Mhpq-H2~UHPqvvC<>IRrW>i>t?!M$QJ|2UM8 zyh0(8tXwIMi8dFtHpH9fGKpXdxIDDPm;Smwt)nTF7O=3+D($O#cQOuxAK}LHengfY zl$)TwXNW3%&y-evBJQZQq^)<8MD1EQVnFhO zTiX6a3sCJ;G^564Zd`yO{-+zGV&l4E_G7w2CSMvS!68+&0hxSPSDSe=^Y5L%pOCT2 z*o>ibcb70G)n~m z^vJ`&RX38${_nbfTrRvDFJBINkk3$tLq+#=^zk)NGMiZX(uiZ?ZUMd%3Ht_4;qNTUujaw!DM*ED$5o)R`U|R+dcG!*gcRPt&nPx%x4B~gOua}|V{95$G`h+hV;peULs&B0yyRQyG+UE{XqVyav7%72!HJ+2 z>bg76?seA@L4j_oj2dG3aMS!6dB=v_+FikhjEa^5$vu&Wn!Ow*SiZE*=r^%t+nCaX>8Yj(it4pvt6J}3e^LDz z7Ggopd3sZKIga5!?FXGCw;w<=Hm^v}pKbMbKHT5Xk`6XePzmC1y9e(e6&E6kEr>RU z(8wlQqLPh*7~xlvOWuVVc7foYSF&UeMYr`!0T+wGsV~C$?ct*0ua`R){|z!9N^O3$ zo;1o!MDkG#PCnhr3oFOHAL0PB=YK_L0yI zY<%KQWg#N|-G$Z$ji2i(sNyizdxT+s)9u~GveQHX{FzY$x36{;dm@H!n{P9=sf-1r zkF)L0YKh-Sr*{5uy(5xSHFT8i)~Wr$cm}oM5O8Bhty`97w5x)mRVY?7AB<?(}cP#vtnA_SF&khslz3t3f|`o{XfGwHSqgy4X=v&YV~Vu;&z1hB3>9D@2e^ z3}vw)>WEhd=MiCD4m~n-|Aw46e_^%mK-}L6cM@AhT?aPPb!-9PzDyQ8r6QNP{KQB6 zkSFe*MG~+1!+E$21f=afPqo#uG^Iw=J@pti4P^vaLXB7QQj|1u4vsJ9?DOzFapY^~ z8|*dH6V!^cfvWfhb%$6Itfe3*#9#Mai<9(tjOJcq*?9Ym0c8t(4N3jrLjQ%r(PXge|r!WC-E@qe2a7<@-3BK7W>49tCOk$2!Pekiy!iBX$}BQlj5 za`8{^1PnGz?IO5EKW3mzI~BY|fB2KQ!#WXT^~8564A^iOgT!w!g+|!44Kqh3^H&<;UnKSx53G1U1HmhmHGcHiuVI}v@kro>DEu6P*VV1wF&O@j*K!-)5 zyru`n7lah_e&4h~T_Cw`2WcYXkHw3YHe`9mR}+4R7H;;JKOJBXy0vtQltK!H605_b zu@ncFEeDgNy=xWY^57UQm@akV_aWF1Q7|#ypKu-y?@8T$|DGLWM`?7)>v#IkQrv2) zO;hHozsU7t7_0!$PJezgT$zZZ3u3(FwN+`_6Uu{@r(@_V;%OBoe>m4m>FXvT^^q@1 zYz|j?C?D3bjmf)8me$@-z0-YFz7R()JmC6Nbn69{#L|Lj4JSA5YrN5o*av(OOnmn& z1EK-D^B57TtBeOW#MsN3cn296E>tcagDSsm9DZ<^5%l7(qJdCVy;`^04~3iUA4Ibf zh)UHe)hSn*V!{GOj;VARW^4MFWBLOL>-LcHpdjY9zkzqx#n%7_Q~0DgS^+-qXO=#D zk7$Jf3)l$ASPZo}IOh2aAr!hFpqwlx!cl&8v*v!)D{5cmH3YrAck2gn->4W#io2XF$6)}HfB<_%jR(_31y|opJ6AUNzw|Yy??<0hMCxR~3J)^*;49b$-ifiTEW@Yv4Qm_5l^_v8NtC7tszs^EFkdtdYR4m?V`^RpTaf0IqST>De*@hFHk5J4>T_)}-zYmzE5dP%jnhcx0B)_ zkAHAmk3}!0H+S>{`@k0W!5jwOY$OS7hQxvbbJ$CuT`Jlx=oSTI2l6^ndVpr8Ay5c zno~_WnpJ(S%N}ZF+E34>pl|0*@QDINAY^_nI?9P0_mRW?*_0@cKJ<>KW%t?|XNHl7 z2EB?0915h(AA_dIuWXw;2x$l85;KqtT$F5F_yQ(QoECvsw#YXEfx#U&8*QF@Obmbi zeDO!kmdv=S?SDi#ntS*YWLa!Rm&TumdD%)8d;~tjglu>;<6w6n7Q>EoHjDDisu%OM?m^R zZ}^Pz9ufA`S6iWQwFPc?{k`!ZbIbvP6Wz!S@_O0d9DFM!hR7V$a zin)tMf)oqCb>md!^$${W{QlxfqP9<|n~|PFED-*fw&#$-pGxC(T-?K#dh0=^ME+`( z)|-`uTye)&HmPKPpPW${1xrNSq3brcg!0@|*xi)1@>yPuSf&i_l!GFmId9em@aIv* zM%>Erq)%<}@GI1UO{YrKb#zKK9y#Dn9C1&hS8PG`r>~Ipky~)%eQmNrxOv>*=llB2 z`-F63f4ond%=as#q_Esr=_D$@tY6#7{Q$Wk! zw_*o}>Rw`nz2LlX+*&N782@X7EapCj^$4UxKUQSESoYAS`S0N-44>j|_BHuK{XMh& zoae!E*YXMMzm+TYn^XT0ul)4M;1OfqOzG=?g-Igay)qH7uHOdf=DvRhjYt?msz) zgn7)Su)LsqA4?0N%k5~;{?`{SSYeFQtXlusXWSVJzh(RrEFY`rt$L*dE~|w24u7!r znsn|wne*E&FMV;ldFASLyxE2E?X;A1Or=UaQApx`e^$sqwdh=!*fnFfe$_qh)ibA+ zr=rY&2NN9m-S*zOzz|?!_W46ar#3c z{6L(`RcFPVN!qv3M@ z-GFrZg`a+5K5#z#D@>r_dR)&ZEHfSUm5hOG4HyAebmJz+|m1xO=*2<5EnNzIG+iW|Q=Gghtmd9+KMFzh^&9H;3>eYcy z&wnYR+qj4lk(4SKmeklW6_PbgD;Ermk?keT#+oH2ifV{(!G=I8yI+dIz=kNudpHG0 z4_6|z4}uHMP!}&3KmkB>Az_RX*umDN0AWT6RH-8ZkJd#2Kz7vX+tD1dC^&~@ggQ_K vn(gq)0Ej~+hzk;P;gUto{T~S(@_;+$_R-E`5UPRwgaRPo8j3aYNYwuTWxxtX literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small-50.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small-50.png new file mode 100644 index 0000000000000000000000000000000000000000..0f9e98ece46fa22784e461cf3c7ab2e27f8fcb31 GIT binary patch literal 3874 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Small.png new file mode 100644 index 0000000000000000000000000000000000000000..c65308a4e608e3261cad7e2c277b52d7c6f6fce3 GIT binary patch literal 3300 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-iOS7.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-iOS7.png new file mode 100644 index 0000000000000000000000000000000000000000..ad14b4920536e9b06bdbae9fa91e033bd70ee326 GIT binary patch literal 3579 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 B^!)$; literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-iOS7@2x.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-Spotlight-iOS7@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..85e22151f6c52b051bbf9d549ff0b44cfe023e58 GIT binary patch literal 4682 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 xN8W_57yv?(9dQ}~#FP|K1|{s#zH6wm+w literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-iPad-Spotlight-iOS7@2x.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon-iPad-Spotlight-iOS7@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..8cfd69ab9f8bfe82a2cf6b1fdcbb964a426674dd GIT binary patch literal 5149 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon.png b/JMHoledView/Images.xcassets/AppIcon.appiconset/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f62c53af3dae7536b2e984e5f05c14ac06429d6e GIT binary patch literal 4064 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 S8QU8G0000TpCtDL0nQwq@+8R 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 literal 0 HcmV?d00001 diff --git a/JMHoledView/JMHoledView-Info.plist b/JMHoledView/JMHoledView-Info.plist index 93db3a4..bfacd11 100644 --- a/JMHoledView/JMHoledView-Info.plist +++ b/JMHoledView/JMHoledView-Info.plist @@ -29,6 +29,8 @@ NSAllowsArbitraryLoads + UILaunchStoryboardName + LaunchScreen UIMainStoryboardFile Main_iPhone UIMainStoryboardFile~ipad diff --git a/JMHoledView/JMHoledView/JMHoledView.h b/JMHoledView/JMHoledView/JMHoledView.h index aa2ec5a..5d7256d 100644 --- a/JMHoledView/JMHoledView/JMHoledView.h +++ b/JMHoledView/JMHoledView/JMHoledView.h @@ -40,16 +40,36 @@ typedef NS_ENUM(NSInteger, JMHolePosition) @property (strong, nonatomic) UIColor *dimingColor; @property (weak, nonatomic) id holeViewDelegate; -- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint andDiameter:(CGFloat)diamter; -- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint andDiameter:(CGFloat)diameter WithHScale:(CGFloat)hScale; +- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint + diameter:(CGFloat)diamter; + +- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint + diameter:(CGFloat)diameter + hScale:(CGFloat)hScale; + - (NSInteger)addHoleRectOnRect:(CGRect)rect; -- (NSInteger)addHoleRoundedRectOnRect:(CGRect)rect withCornerRadius:(CGFloat)cornerRadius; + +- (NSInteger)addHoleRoundedRectOnRect:(CGRect)rect + cornerRadius:(CGFloat)cornerRadius; + - (NSInteger)addHCustomView:(UIView *)customView onRect:(CGRect)rect; -- (void) addHoleCircleCenteredOnPosition:(CGPoint)centerPoint andDiameter:(CGFloat)diameter withText:(NSString *)text onPosition:(JMHolePosition)position withMargin:(CGFloat) margin; -- (void) addHoleRectOnRect:(CGRect)rect withText:(NSString *)text onPosition:(JMHolePosition)position withMargin:(CGFloat) margin; -- (void) addHoleRoundedRectOnRect:(CGRect)rect withCornerRadius:(CGFloat)cornerRadius withText:(NSString *)text onPosition:(JMHolePosition)position withMargin:(CGFloat) margin; +- (void)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint + diameter:(CGFloat)diameter + text:(NSString *)text + onPosition:(JMHolePosition)position + margin:(CGFloat)margin; + +- (void)addHoleRectOnRect:(CGRect)rect + text:(NSString *)text + onPosition:(JMHolePosition)position + margin:(CGFloat)margin; +- (void)addHoleRoundedRectOnRect:(CGRect)rect + cornerRadius:(CGFloat)cornerRadius + text:(NSString *)text + onPosition:(JMHolePosition)position + margin:(CGFloat)margin; - (void)removeHoles; diff --git a/JMHoledView/JMHoledView/JMHoledView.m b/JMHoledView/JMHoledView/JMHoledView.m index 297fc62..a3e3e9b 100644 --- a/JMHoledView/JMHoledView/JMHoledView.m +++ b/JMHoledView/JMHoledView/JMHoledView.m @@ -52,7 +52,7 @@ @implementation JMCustomRectHole @end @interface JMHoledView () -@property (strong, nonatomic) NSMutableArray *holes; //Array of JMHole +@property (strong, nonatomic) NSMutableArray *holes; //Array of JMHole @end @implementation JMHoledView @@ -140,11 +140,13 @@ - (void)drawRect:(CGRect)rect } #pragma mark - Add methods -- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint andDiameter:(CGFloat)diameter + +- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint diameter:(CGFloat)diameter { - return [self addHoleCircleCenteredOnPosition:centerPoint andDiameter:diameter WithHScale:1.f]; + return [self addHoleCircleCenteredOnPosition:centerPoint diameter:diameter hScale:1.f]; } -- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint andDiameter:(CGFloat)diameter WithHScale:(CGFloat)hScale + +- (NSInteger)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint diameter:(CGFloat)diameter hScale:(CGFloat)hScale { JMCircleHole *circleHole = [JMCircleHole new]; circleHole.holeCenterPoint = centerPoint; @@ -170,7 +172,7 @@ - (NSInteger)addHoleRectOnRect:(CGRect)rect return [self.holes indexOfObject:rectHole]; } -- (NSInteger)addHoleRoundedRectOnRect:(CGRect)rect withCornerRadius:(CGFloat)cornerRadius +- (NSInteger)addHoleRoundedRectOnRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius { JMRoundedRectHole *rectHole = [JMRoundedRectHole new]; rectHole.holeRect = rect; @@ -194,24 +196,47 @@ - (NSInteger)addHCustomView:(UIView *)customView onRect:(CGRect)rect return [self.holes indexOfObject:customHole]; } -- (void) addHoleCircleCenteredOnPosition:(CGPoint)centerPoint andDiameter:(CGFloat)diameter withText:(NSString *)text onPosition:(JMHolePosition) pos withMargin:(CGFloat) margin +- (void)addHoleCircleCenteredOnPosition:(CGPoint)centerPoint + diameter:(CGFloat)diameter + text:(NSString *)text + onPosition:(JMHolePosition)pos + margin:(CGFloat) margin { - [self addHoleCircleCenteredOnPosition:centerPoint andDiameter:diameter]; - [self buildLabel:centerPoint holeWidth:diameter holeHeight:diameter withText:text onPosition:pos withMargin:margin]; + [self addHoleCircleCenteredOnPosition:centerPoint + diameter:diameter]; + + [self buildLabel:centerPoint holeWidth:diameter holeHeight:diameter text:text onPosition:pos margin:margin]; } -- (void) addHoleRectOnRect:(CGRect)rect withText:(NSString *)text onPosition:(JMHolePosition) pos withMargin:(CGFloat) margin +- (void)addHoleRectOnRect:(CGRect)rect + text:(NSString *)text + onPosition:(JMHolePosition)pos + margin:(CGFloat) margin { [self addHoleRectOnRect:rect]; - [self buildLabel:CGPointMake(rect.origin.x+(rect.size.width/2),rect.origin.y+(rect.size.height/2)) holeWidth:rect.size.width holeHeight:rect.size.height withText:text onPosition:pos withMargin:margin]; + [self buildLabel:CGPointMake(rect.origin.x+(rect.size.width/2),rect.origin.y+(rect.size.height/2)) + holeWidth:rect.size.width + holeHeight:rect.size.height + text:text onPosition:pos + margin:margin]; } --(void) addHoleRoundedRectOnRect:(CGRect)rect withCornerRadius:(CGFloat)cornerRadius withText:(NSString *)text onPosition:(JMHolePosition) pos withMargin:(CGFloat) margin +-(void)addHoleRoundedRectOnRect:(CGRect)rect + cornerRadius:(CGFloat)cornerRadius + text:(NSString *)text + onPosition:(JMHolePosition)pos + margin:(CGFloat) margin { - [self addHoleRoundedRectOnRect:rect withCornerRadius:cornerRadius]; - [self buildLabel:CGPointMake(rect.origin.x+(rect.size.width/2),rect.origin.y+(rect.size.height/2)) holeWidth:rect.size.width holeHeight:rect.size.height withText:text onPosition:pos withMargin:margin]; + [self addHoleRoundedRectOnRect:rect + cornerRadius:cornerRadius]; + + [self buildLabel:CGPointMake(rect.origin.x+(rect.size.width/2),rect.origin.y+(rect.size.height/2)) + holeWidth:rect.size.width + holeHeight:rect.size.height + text:text onPosition:pos + margin:margin]; } - (void)removeHoles @@ -221,8 +246,13 @@ - (void)removeHoles [self setNeedsDisplay]; } --(UILabel*) buildLabel:(CGPoint)point holeWidth:(CGFloat)width holeHeight:(CGFloat)height withText:(NSString*) text onPosition:(JMHolePosition) pos withMargin:(CGFloat) margin{ - +-(UILabel*)buildLabel:(CGPoint)point + holeWidth:(CGFloat)width + holeHeight:(CGFloat)height + text:(NSString*)text + onPosition:(JMHolePosition)pos + margin:(CGFloat) margin +{ CGPoint centerPoint = point; CGFloat holeWidthHalf = (width/2) + margin; CGFloat holeHeightHalf = (height/2) + margin; diff --git a/JMHoledView/JMViewController.m b/JMHoledView/JMViewController.m index c11159d..a2f2b60 100644 --- a/JMHoledView/JMViewController.m +++ b/JMHoledView/JMViewController.m @@ -28,7 +28,7 @@ - (void)viewDidAppear:(BOOL)animated - (void)webViewDidFinishLoad:(UIWebView *)webView { self.holedView.holeViewDelegate = self; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(25.0f, 25.0f) andDiameter:40.0f]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(25.0f, 25.0f) diameter:40.0f]; [self.holedView addHoleRectOnRect:CGRectMake(10.0f, 250.0f, 300.0f, 30.0f)]; [self.holedView addHCustomView:[self viewForDemo] onRect:CGRectMake(60.0f, 350.0f, 200.0f, 50.0f)]; } @@ -36,18 +36,18 @@ - (void)webViewDidFinishLoad:(UIWebView *)webView - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { self.holedView.holeViewDelegate = self; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 50.0f) andDiameter:40.0f withText:@"Left Text" onPosition:JMPositionLeft withMargin:10.0f]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 100.0f) andDiameter:40.0f withText:@"Right Text" onPosition:JMPositionRight withMargin:10.0f]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 160.0f) andDiameter:40.0f withText:@"Top Text" onPosition:JMPositionTop withMargin:0]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 210.0f) andDiameter:40.0f withText:@"Bottom Text" onPosition:JMPositionBottom withMargin:0]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 50.0f) diameter:40.0f text:@"Left Text" onPosition:JMPositionLeft margin:10.0f]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 100.0f) diameter:40.0f text:@"Right Text" onPosition:JMPositionRight margin:10.0f]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 160.0f) diameter:40.0f text:@"Top Text" onPosition:JMPositionTop margin:0]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 210.0f) diameter:40.0f text:@"Bottom Text" onPosition:JMPositionBottom margin:0]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(100.0f, 300.0f) andDiameter:40.0f withText:@"Top Left" onPosition:JMPositionTopLeftCorner withMargin:0]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(200.0f, 300.0f) andDiameter:40.0f withText:@"Top Right" onPosition:JMPositionTopRightCorner withMargin:0]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(100.0f, 350.0f) andDiameter:40.0f withText:@"Bottom Left" onPosition:JMPositionBottomLeftCorner withMargin:0]; - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(200.0f, 350.0f) andDiameter:40.0f withText:@"Bottom Right" onPosition:JMPositionBottomRightCorner withMargin:0]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(100.0f, 300.0f) diameter:40.0f text:@"Top Left" onPosition:JMPositionTopLeftCorner margin:0]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(200.0f, 300.0f) diameter:40.0f text:@"Top Right" onPosition:JMPositionTopRightCorner margin:0]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(100.0f, 350.0f) diameter:40.0f text:@"Bottom Left" onPosition:JMPositionBottomLeftCorner margin:0]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(200.0f, 350.0f) diameter:40.0f text:@"Bottom Right" onPosition:JMPositionBottomRightCorner margin:0]; // test add oval hole - [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 450.0f) andDiameter:50 WithHScale:0.5f]; + [self.holedView addHoleCircleCenteredOnPosition:CGPointMake(150.0f, 450.0f) diameter:50 hScale:0.5f]; } #pragma mark - JMHoledViewDelegate diff --git a/JMHoledView/LaunchScreen.storyboard b/JMHoledView/LaunchScreen.storyboard new file mode 100644 index 0000000..3bd7eb4 --- /dev/null +++ b/JMHoledView/LaunchScreen.storyboard @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +