From 984d69feb99dd34b0267debe653dbebd699260c3 Mon Sep 17 00:00:00 2001 From: Darin Doria Date: Sat, 5 Apr 2014 14:05:43 -0400 Subject: [PATCH] Included coach mark files with sample --- .DS_Store | Bin 0 -> 6148 bytes Coach Marks.xcodeproj/project.pbxproj | 20 +++++++++++ .../xcshareddata/Coach Marks.xccheckout | 2 +- .../UserInterfaceState.xcuserstate | Bin 11963 -> 15653 bytes Coach Marks/.DS_Store | Bin 0 -> 12292 bytes Coach Marks/Base.lproj/Main.storyboard | 13 ++++++-- Coach Marks/DDBubble.m | 2 +- Coach Marks/DDCircleView.m | 6 ++-- Coach Marks/DDCoachMarksView.m | 17 ---------- Coach Marks/Images.xcassets/.DS_Store | Bin 0 -> 6148 bytes Coach Marks/ViewController.m | 31 +++++++++++++++++- Coach Marks/en.lproj/InfoPlist.strings | 2 ++ Coach MarksTests/Coach MarksTests-Info.plist | 22 +++++++++++++ Coach MarksTests/en.lproj/InfoPlist.strings | 2 ++ 14 files changed, 91 insertions(+), 26 deletions(-) create mode 100644 .DS_Store create mode 100644 Coach Marks/.DS_Store create mode 100644 Coach Marks/Images.xcassets/.DS_Store create mode 100644 Coach Marks/en.lproj/InfoPlist.strings create mode 100644 Coach MarksTests/Coach MarksTests-Info.plist create mode 100644 Coach MarksTests/en.lproj/InfoPlist.strings diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..daa9c9285993b5972e6cda93a337ed5d093f02d7 GIT binary patch literal 6148 zcmeHKTZ6c6 zUf%?NgXm8Y^l@MOE%lrvN-x`oB508uIQf#y`I5|+OfmrgR_g|301E&Nbi(`@OinO* zPCjEfRdW`Ri8ey8;V!t)foC((x0W#rom3<0#EarDK*`$)7sCYM5rhESx)Ec;tk<=VWfyO>1uFA(igC zS?H$^vQILhAQB`3W zrePjhYyJL4WvghHuU#J$?S8qmQ7PJ+rLDoh`d}JsS1LDdd;I0A*Kgjwd;jUPcu8Qm zu?f4N@E3f+%pBo@)Q>%U1qz)L^4#epF;9*#f;zZ#@(jRLc!9IRA%G^daaZN=bZS<< zB71!#408*$6d#oxpSRkA2Ok$?w|KoCbTc2|o9olMSg7w75B`AN4#!9So%*)sD7c5p zrI5kYYG%90p;0rnnpfct>|h%WxCah2CRJv~6g{T03A-416Y6-{HE@<%5KJ<1kEa+| zTsl)r+bAsE$n=1;0$PE8tpM#0HacNd;ZUO3IxrDe0K`023&TA9ED*<5SXDTbh)>X% zq#{ZxQ&$Wo=~!>8xT?aTL`esxE+0(w%+w8qiQch&TZ99vO4O-VKr1k*z=|wdbpAKy z-~T5`x}+7*3j9|JuzcOA*YK6p**f!bbk^GFPteIIZYWVuFj2>`$k0)I8C@7YvnhjE VRXCK0HE8-rK**pIt-xPZ;3vD{)Jy;X literal 0 HcmV?d00001 diff --git a/Coach Marks.xcodeproj/project.pbxproj b/Coach Marks.xcodeproj/project.pbxproj index 00dc2c1..cb85b13 100644 --- a/Coach Marks.xcodeproj/project.pbxproj +++ b/Coach Marks.xcodeproj/project.pbxproj @@ -21,6 +21,9 @@ 93299DC418EBEA2700D8E660 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93299DA618EBEA2700D8E660 /* UIKit.framework */; }; 93299DCC18EBEA2700D8E660 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 93299DCA18EBEA2700D8E660 /* InfoPlist.strings */; }; 93299DCE18EBEA2700D8E660 /* Coach_MarksTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 93299DCD18EBEA2700D8E660 /* Coach_MarksTests.m */; }; + 935EE4C418F07520001F039E /* DDBubble.m in Sources */ = {isa = PBXBuildFile; fileRef = 935EE4BF18F07520001F039E /* DDBubble.m */; }; + 935EE4C518F07520001F039E /* DDCircleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 935EE4C118F07520001F039E /* DDCircleView.m */; }; + 935EE4C618F07520001F039E /* DDCoachMarksView.m in Sources */ = {isa = PBXBuildFile; fileRef = 935EE4C318F07520001F039E /* DDCoachMarksView.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -53,6 +56,12 @@ 93299DC918EBEA2700D8E660 /* Coach MarksTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Coach MarksTests-Info.plist"; sourceTree = ""; }; 93299DCB18EBEA2700D8E660 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 93299DCD18EBEA2700D8E660 /* Coach_MarksTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Coach_MarksTests.m; sourceTree = ""; }; + 935EE4BE18F07520001F039E /* DDBubble.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDBubble.h; sourceTree = ""; }; + 935EE4BF18F07520001F039E /* DDBubble.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDBubble.m; sourceTree = ""; }; + 935EE4C018F07520001F039E /* DDCircleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDCircleView.h; sourceTree = ""; }; + 935EE4C118F07520001F039E /* DDCircleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDCircleView.m; sourceTree = ""; }; + 935EE4C218F07520001F039E /* DDCoachMarksView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDCoachMarksView.h; sourceTree = ""; }; + 935EE4C318F07520001F039E /* DDCoachMarksView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDCoachMarksView.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -117,6 +126,12 @@ 93299DB418EBEA2700D8E660 /* Main.storyboard */, 93299DB718EBEA2700D8E660 /* ViewController.h */, 93299DB818EBEA2700D8E660 /* ViewController.m */, + 935EE4BE18F07520001F039E /* DDBubble.h */, + 935EE4BF18F07520001F039E /* DDBubble.m */, + 935EE4C018F07520001F039E /* DDCircleView.h */, + 935EE4C118F07520001F039E /* DDCircleView.m */, + 935EE4C218F07520001F039E /* DDCoachMarksView.h */, + 935EE4C318F07520001F039E /* DDCoachMarksView.m */, 93299DBA18EBEA2700D8E660 /* Images.xcassets */, 93299DA918EBEA2700D8E660 /* Supporting Files */, ); @@ -249,8 +264,11 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 935EE4C618F07520001F039E /* DDCoachMarksView.m in Sources */, 93299DB918EBEA2700D8E660 /* ViewController.m in Sources */, + 935EE4C418F07520001F039E /* DDBubble.m in Sources */, 93299DB318EBEA2700D8E660 /* AppDelegate.m in Sources */, + 935EE4C518F07520001F039E /* DDCircleView.m in Sources */, 93299DAF18EBEA2700D8E660 /* main.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -456,6 +474,7 @@ 93299DD318EBEA2700D8E660 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 93299DD418EBEA2700D8E660 /* Build configuration list for PBXNativeTarget "Coach MarksTests" */ = { isa = XCConfigurationList; @@ -464,6 +483,7 @@ 93299DD618EBEA2700D8E660 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/Coach Marks.xcodeproj/project.xcworkspace/xcshareddata/Coach Marks.xccheckout b/Coach Marks.xcodeproj/project.xcworkspace/xcshareddata/Coach Marks.xccheckout index eec8733..656f278 100644 --- a/Coach Marks.xcodeproj/project.xcworkspace/xcshareddata/Coach Marks.xccheckout +++ b/Coach Marks.xcodeproj/project.xcworkspace/xcshareddata/Coach Marks.xccheckout @@ -5,7 +5,7 @@ IDESourceControlProjectFavoriteDictionaryKey IDESourceControlProjectIdentifier - 4AE21C2A-7EAF-4A8F-9043-CF0E1B9D203E + 1F5699E3-A15B-449D-AE18-78A0476EAA3F IDESourceControlProjectName Coach Marks IDESourceControlProjectOriginsDictionary diff --git a/Coach Marks.xcodeproj/project.xcworkspace/xcuserdata/Darin.xcuserdatad/UserInterfaceState.xcuserstate b/Coach Marks.xcodeproj/project.xcworkspace/xcuserdata/Darin.xcuserdatad/UserInterfaceState.xcuserstate index 1ced18764def1fa9786d958c9cf80dda3122e2f6..3bfb9057cc097abea794134061f9dab21442c459 100644 GIT binary patch literal 15653 zcmc(G2UwHW_x~L)5Q2~aA%FsrB!uh%DsBYC;=lp86$89NDiBP9+j`$R+G@4K(PI240oV-jL|O*Jgw13{m^Wvanndm&#J3QjY419go)cwA)&`CHWpui1W! z3a>$NNQRP83eq4aav?YJpnOz-`l0@404hWS(I7M!jY1coax@x^K@-swG!@mLd8i3B zqZZ^xZD;{nidLdkXf;}cE?6mwXKRalLaaSGPpRIJ5m*no{V z7n^WCF2Mb8e>?ye;(>T1F2ken1-KlK#$)glJQYvF)A3x~fE%$7x8VhNAzq1B;nnym zd^O&PH{t8?O?VqVh!5dg@L_x_z6~G2ci_A6qxdoWIDP^@iJ!tx<7eV)btL1h$8j-SJg4B4 zoQBKfvbb!{#N}~j&dm+xMsTCJ(cCz00ymMX=B9JAxms>6*T6M%0d5Jmlv~EF;#PC( zxeeSE+?CvRuAS@Pc5pknUEFT&0C$kPo%;`W4|gwjANLUVIQJ~~688r84tJXSjQf`R zj{Bbbo%+doWJ6t(HyG?d zi71H?MmvxasTjvTVx}5pN_pwXDgMB`V5_%|FZI{8HS;Z@8l|CMp*z2{bU?A)Gs5Mz z7Zmm%X&>RqA80QwE_Rm;aE~l?_3IyDoQiUg<7T8qX(%0Kpx&qt%0yWx8|hGA7QPBLgy`Tx3Fd$c!w=ifqWnluX4|v76apb~}54y~sXbRq($J z#4HZ*-g&KlUrQ)BqAuiH;0^KhHOh=qey+EzDKxU)7xD)xL+~_M<_}a)8XK%pYD@Xr zwuS~@OT!djOTB+#G2iH2;PVH7T9^bssja1y4~Bd#-Vk`6nbO0`x<u7e0*dxhM*D1u@enN!_aV4 z#MCUAr7+D-RE$bcDH_RA*&w!rT`ekgz|=Z_J?{wrn?E7o7yWK!TdTMjN3=-MV``MS z(oC?OF}^>It@O7A>i7~MU85|E8d&15^LwlOZFP<1Eg`-k5Z3#-thxtP!k#X!^?L)b z(|J*Z&XI0JFvy2WydiIszagTBv8Vz$+R-?sZAar-2D6<)li-k4qAFC4CX2_U7WQxk z{0;C;AjkrqA(qb4YLuhq`kMGbPN%av2)phq^#*(`&Qg8>-{f!Q1I|&tkh8S3#P6+Z z9Os3D;|zZ^dR*aejzywQTS1x5=g~AY9nC;9r%MO01$KX`^pOu%S5(42cc58lw)Amo zMdkQ# zv0$~1AcWn}0w2GyMrjM{F?#5P01xM)Em-9ZH1M6qSR%TN^AE4&o4`=``iQ-b_1A?r z5{6555ly{D;@FdTWQnaPAnwt8rfWw*)>mALs&sNyr6}%X5Vt(UHwT{&JGX^sNe5bl z7PB0d$E*?m)}YMNH2O9f%=;8Cfnf%>pvz^>DO&bA3FVcqM!nDUS0twD>}8 zqG|T+R!|hf?rHiWz6go`NjrHdx@=}eWvLI`kH5tmSlodwMYAK4tV0{3B)I}z$;`~c zOcV4)%kS?&Wi#3`yP|SjTgY46#E%FByo-0B&FC658%#3%RbqA>y1qu4+%>S9>kf3C z$hStR{ri!>k|c&uo(=yPYf< z%6Zo}BYf0!;e#fr=}vSMylj+BpKF#o&|T` zM~>~=MV}&t-UrZ=$gvMSh#o>G(ZlEw^eB1^J&vAWgV|6voQ+^5Y$O}S%GsEG=qdCx zdImjnS2mtQdFZH_m7x}gdyC80{*5ZJ`lZ*Pr@vUYm}q^5eo>q zrEo+VAd!fs|3#R7>A$>$C@p;xW>Hq79P^Ks0I|szsB7Z?ybV8w8C>wM?{$aZb{c?q_zdG1EQffDV{sgo;doZT#`VYAO!~+jt0@ z#&ae`B5d?5aHU@^d-IajcT8LAvgzDzk9)anviQ-pJhFy#oORwcWMdtyA%{(2Q(+C$ zm`$X$G%0%HbE{Z-F55Yt6FjmXzSUux+;vzgEEc#s5@P97) zr=R7XX^xRZFYMmNv3TNnw{a4#1ktORk6j3&&y%)s*_*xIsGhOZ(|-W$VnM!p`P8L_ z1L1QwxfyuQdC7TkEs(2c&8!8;`8%zm;zf7<%%yJ605|9}zpxOjBHvxmzbC;9vH!dT zTk-s`YUi_nq*~F;mb{mrTrQccr@y;vdlup4=cREGUJ<4dVr^YC&c6IW`RTP1jehyv zTf7FZJ1>pP@p_849%3 zh1vq)Xww~=Ym}+w#URtE&<oN86}YR^MMH> zRsjCEQzxZWeo+%+TKo%JB*7;5gFZ2nALnfatUydY`T8n<>sYbSi%bFq8lLSW` z6~7j(j5qPyqFuhlHn!t;*yd=v{4i{noBnBDQr_%s;Db=SLe&uCb_2U{5B>^&jlaR);_vYH_y@L?ZD$>92iwW^vHhZT zYNeWkuNSMi9=16{s=vZD9u#Qxe8}r->NcTS!MY}29oVVe3(yY?kcQhu0J-y#0%}yS zSHMUBi-AG2{D2lOfFv>eKCEhj32i5Y-Nd#5TI6sRd+X*k1pI9+_2CseAdJJh`A|5| zC$S_BD!k6xtdbAyfG4tWfev3JdUBCo0&D*t^q|@(FD@_X#3aUd%GJHPPW=)kQAKSw zNg=7Q*+j#3wG%DdEh74q_(`c8J{~vR47h1L%jZj*k@jHA+p_vk@Xl z9|Al8d_awIZ~cN$eR!BHb7VWfk944tzknYq`(=j*c{&0RzOeSv;wNv z17Vo}Gv@jO%|WMcf=Hw?Ld4P9`KHI<%F;1^8aKeYrX!`9e*+WR#=PlAUA>8B4~I3U-toXAiPRyFd~$kyMMaP9l}0irvNTX2*7r$z%$d z%I;zJvin3?bN@s=N;F7M{Q&?vYn0Z%9w;8KO1>3xUD)y(rTMQ%OFSlfo7#ANk>o$o zL|t`po3E)pqG&Gx6zm+~=aL4}$nIw+*aHySiLxc1^$GKi5)!T?=`Fr#>o`QjNW|= zMytDEKqp)uFHh)|m;`uV=lUf`5FF2l5ZGI78(`P~)AwR@T4h^Z9nZtbKc!O3lT*{r z1MYXEXc)(0I<#qkv&XZ9$rY7laH3#jiNDDocp)<@TdwPyqlf1r@(f((mNj`Bg796m zaD7p(q&-!lQiSONU3QFZtMk=+M+HQmQ(bN^_BYi(pKHo9pAW|DWY>{r>BcW@cDcjp z0tu#wo&nYsmZVZ_FciCxk}^4v^W;ZF?C@CNd%ynC*jhjFVc|f4fqLkrUeZ{{Aj^55 zgR88l9K$abqk+^qd~WEls({}gVi=l+D(Fq9NuqStuwPYQ+oUDg`*RiMA z)9e}c9Q^yVc+zwJ`bbtSZUr~~KL&v)Fv#@Rl*B=mp~X%Ad!$%Bhezs*WRhN#_<3?I z9K!3!^`gm(P-VFIeXsul4|`Tp)s1AUq!qq{+$h3($|`@ocd^bJ(s>5C@^ur&DbMuu z2a>1kKug-83r4%W<8HD~jC^~@UiK1urGxAzH?!B++fi8-IULTiUj8>hjh>(hITEJ- z>OalmqH}E#gA3=^i_sIw3LvosY zL_Q{;kTdLK_6a+~K4qV=&)FC3>|XL2`J8+K{mCTqAvh2l`;vXdzJ|h*!Z0QLwatd3 zAocvhEk5Wiz=QDtD3|#9uI6f$x3)X~gNQy%oD}K2M!l@*Ush63n(xZDmy9UsZ!ah< zaN7&}jd0t``j_U9EGa83D0Gj2vagG4c}p4efrE7co^Kf!?z`D~5|>2lW?tRmo8QKF zr{XorY#1KSRrvoRQ4eNSet%P~H&70hT^QPu(iVvaETcH;m3HY;5m3r6SZ>oTb-M>b z!9AeBwS2i`8Gk?>L_P#97Itn4r8E(Mbjr~f8cXA-jK)(rO`yHlH|$&X9s8dBzH8yvLWTk4@vD`w8(VCfZP6P?h5^u4mJwi(QGdXI_9 zWSG&}B@c6u$m=>Eb@$z&$qv8;+ariLN znQ)lsECDOJPtzRQ2-Q3F(pp+a>nTs?(gp#;8BqyXE#PDUrwCXh;M6_TM=zxFXcKLw zE$9gWYXzJp;64J*6R=LeX7JUvnW8m{X^5C4%#b7u%MKnuO1Qj$bVu(Kl#kNMfHz{L zFXo)!xgrSDdEWJoyc@X)>O%2KShu5^5qSr#N}$r(Rtptn=QS5-;M?o$Qn?%1nk5w4 z!+(bKDWd|||4IR;3phix``*kXCK$_QSETGaA4K>fy^O9!33MI3oUW%E=oR!zWQ21O zktb3a&+e90I<_#P8EmEdvFNrTuU<5MZe(uvI{_O7oF!nBfHT>u8f9md3bkKG&;rh!lVTPoX-pEb?6N&w9dZU01@U>@Nb}HPT?tr@L zW>m$-3OJWZ{dRhY-g5q?YzI9o^8c^>T6!D39WF(jtGDj;MB8Ww{f|iQZ;zj9_qG6T zB<8?>^B#<}F-OG%dY6E$tPmXIQmJzTVR7I9h>-pJ_gfx;3+cV|0l>BCee^iJpPmq~ zUBC_jI|c08Ngt#Sk#+Q80lNj(Bl>Np=c=rOt1~r9UDQia%u2Xx1QD?=;A@324D(Z?hJ>k$?j|DZ zn^eR?>01IG&<+6~Vmo*k$ZW(bP~e^b_Z3$h8T|o0Esp+BzysUqM*{$iD!3RcOf zIdJ`>1U$NHm0T*9evUL5TyFtiAmDP42JA=j_xd8=oG58@oc^471`fO!#L2N@&{M$7 zNSqcUyS`}V{o(m9a2C$W*-!#!M^&7Yb3sKfR_c=3iXprroXBb$_!eJVP~slO3KxZ> zH)*X>6ZTK91Uwn;0pSV(PkV{;aQVQafa}Ng2R?RgAlbqV!bhe8KG0Mj;9DjGSOrPN zj5-O1l!|K>7g02~%cMMPc@=%)&Je2*}}4dI4LVM4&w0-g}@>S0&F6@!oF zO1M&Pq<|+181jb79zHr8awVS`?LoN;(St&~`kx*&YT?{uSo%PG1XbZ90-hoYJXLhE zaA}mA0Zxen&r$*W#rtYp4L3)s?YrVjRQejdKOLM`be$p;@OOqw9O^i@&!_(zQ#v?a zr2cn?_K0Gg=ZkCPF6=t|+&lr#WHxEZE#eXIbFBh~Y-vvS5eRY%&N1bM+#&(b7I01Y z8rP~vqbz?p$Nn_@;_z@UWD`aG!-FF&E^ZA6kWB}733sW0>jYfi!L8-i378k~-0*RY zwD7v>2=JB?NDhh;FIjfIaCF7{zcD1DjH|e70WspP<~DMhxXs)a4w3^%1setI6Yzxs z2K_Yc=C0$e=WakYZYzTPzgfUR0f)r&NbI75qZRK8kL=Nl2#Uv4tW-KHLAcB+-hzb( zk=2L;q(q^zWSp2Qwgn|G4QcPl7BPr`DTuXF*Xp9^7xT~t==AF_L!u_u*3z}vNCtH- z$;hJjaQl$Do!cwmmUeExfc+7VBn7JxVfiD24{?V@FM5lBTidx?1w5bGqSKTxX22cc zpjFwy-9ez32(VM|iMsE`~Z zfWue7B#uvTPr)lv%1*U&5bhU>$dvTvIqnp^p|DZ9_OKM)uU_U}?Pm3wfERbOdXsxA zI)1#%y)TjpM@jAj0WXall#kGo9o)yHpWYUg@r(^ITxabHgV1m~ zo>oHzb|L&CVHp+ZO87m(T6#HD5m(YZkafLIzlMzBd-!$1&-7RNJ7fU_eqRvF$>3K7 zeK|d6gx?mJAy(QUO1imxh-3q}3T__!hTukSAN)4pi7Nkk9j!eY;0j{U2JP?Ft#mrQS6e~WwDpVUKP7Fc3W(F?2g#a zW518Xaq>82oF=Y!oFUE~Hz;mM+_1Q!xZ=1mapU5~$4!i@jH`}gaks?1C5w}#$h5L_ zSsz)JOeZUl4V4wkN@ZoT3uM)@>9U!!*|ItrFKdwbWD8|$Wrt*U%I=pvC3{}>w(JAh zY1zlJ&t+$2U&+3aeJlGdJ~mzx-zVM>Z;vmDA01y4-xxnHzB%3>&*Im{Z;Ia@-x0qv zes}!d_^;!Ck;~+Xa)n$aPnD<1Gvs~bdbveDTs}r#B@fA$%5RY0D!*HPT>hl|Df!d# zXXS6ozm$J1|5pCJ{73oE@?Yh@Cjg?Hph?gsq$l)F$V|vi=$oKVFeaE1%nAJy3KIq; z3`tm%urXnC!ZiukC48FjW5Uk~zb5?NtD@J8UbA}D^z!yP)azKUdwU)4bs|xfn3bqY z%tYOrdks!Vl(YP4#sszNnEHBH5< zT2xC_t5j=Lm#WsPE>~?WJ#N>Pgj$s+U!-s$N&UsXDFtSanAA znd%GGm#UxCRIOB}t9z?6)!FL4YKz*YcBoxykGeoTR6R;vrJkj(QG3;OYF^!faHP6gOi6QUywXH zd2Dh;@`U6`$yLd%$%m33Nd7nlr^r(hQW8@XDSc8hQ?gQYDfX1YltC#&Qii1zr4*-( zOBtUsF{Lu4I%P`Aw3Pak)|6{fZcTY5<=vDoQ+`YNJ>?G#*2p!98ihus>7y}gEE=oE zt{J2msu`{+)|6_>G?kia%@oZv%|6W?nv>VX&^)DiM)REJl;%Cn2b$BGk2PmB zpJ~3(e5v_5wO49dsx@_B>e$rTsZFVEsf$vVq%KRnF0~`|mee~^?@2wG`e^FosZXYU zqK((4YPH%lZHCsQwP}+IiafTBcpE-JrcfdzJPk z?GEiO?H=s`?IG=9?QPnJwQr?embM}7hP0c~wx{h#+m*H_?MT{*w5QWvOnW)))wI{s z-b?!+?R475X=lGb$ zKc4=1MtVk0h9Sd}F(6}DMo~s_Mrp>FjBy#`GbUzKX3Wf}$(Wb1C}Ty2kg+mjb;jix z8#1oUxH@A~#@39T83!|tWTs_iWa=~BnT46dGsk95%bbxpE3+okn^~91X9hAunF}%( zWiH8FmU&So%iNXuc;>fRSy`qmbCxG-P*zFS$gGO2>a6Km%~}4erCF=8F3GwqYhBj0 zSzEKVWwmGR&f1%`KkGo&U0KJn?#()$-77miyLWbGc6PQuds()Sy)t`s_S)>rvo~a4 znY|@@YxeH!Te9!TK9T)k_Q~wWv!Bd-y^SI+xC)E70}Vt7LO& zr#q#4QTMX$bYFSjF?}2QZs~ip?+bm;=EUcyb2K^Hob;UBoPjxmbB5*&&l!2P_?*U^c{wdPtvSJ*ww#4It8=c+*_rb~&PV!Gy;)zVpQxX$pRW(< z+w=?dOZ3b2OutgUMt_<9M*U6tcKr_hF8v<;e*HoHVg2p;Bl<`6@9NJQVht*T$uQb5 z+u$=SFf2AKGpsONY*=MDV7SY0kKwrC0mDhdBZempuNvMlyl*&d_{8v~;Tywuh93<- z8*`1rjFXKu##$q9Y%qq5D~)T6ml-cNUSYi2xY>BEagTAo@u2ar@pj`K#=DHijQ1KJ zH@;;2DmNy#Z|?BiF}V%7q1@%UD{_V0mAR{PH{@QGyD4`|?sd605S-FT z8?DQ%tF3FT>#bK>ueNTp?zHZ)?zi4zz0G>WdZ+b-^>ORV);FwgTi>&OWIbd3+;d%^aS?N!?wwzqBH+J3P8Z2QfQ?8Kg6 zSKBrAG<$D*rajkgw%hFe>;vqB>?QUxd%3;ZUTd$nH`smli|woJm)O_ZFSl>DUu(a? zzSX|l{;d5)`yURO!{NwxOmoyb<~u@;g^neT<&G7OOC9SSS2{L2Haj{TdmQ^62OYOL zjyR4w?sgn=Jmh%J@si_J#~Y4!9UnM8a(v?W+VO{zbH+L4PK8tL)HtytGk2>#m-s3#we9!r7PuC>mbq5A z1lLB_cGnKqZr4870oNhd-L6MmPr9CQJ?DDK^{VR)*ITZ)UEjN@JJucV?&VgvRqiZz zU$?<+a$DRs_dxd$_b~Secd5I~UFn|ep5~tEu5o+aE$;d5kb9wfiF=v*GWS~dI`?|_ z_3o|i?d~1!-R`~aTir+9$K3b1Pq-g+KkI(c{fhf__dD+Q-KX6jyMOU;9+fB6lkVx` z>FY6gOdhjmfTzea&NInV?V0MC<(cED^YETU9>Mdd=QYpUo)5!`C?Z7q8>5i^M*j7D G^#1^OlV_0t delta 7209 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 N2`~XBzy$s%fuD&&L|^~_ literal 0 HcmV?d00001 diff --git a/Coach Marks/Base.lproj/Main.storyboard b/Coach Marks/Base.lproj/Main.storyboard index ce2c658..1a180c0 100644 --- a/Coach Marks/Base.lproj/Main.storyboard +++ b/Coach Marks/Base.lproj/Main.storyboard @@ -1,10 +1,10 @@ - + - + @@ -15,6 +15,12 @@ + + + + + + @@ -22,6 +28,9 @@ + + + diff --git a/Coach Marks/DDBubble.m b/Coach Marks/DDBubble.m index 42ec454..6114aa7 100755 --- a/Coach Marks/DDBubble.m +++ b/Coach Marks/DDBubble.m @@ -222,7 +222,7 @@ - (void)animate delay:0.3 options:(UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) animations:^ { - self.transform = CGAffineTransformMakeTranslation(0, -4); + self.transform = CGAffineTransformMakeTranslation(0, -5); } completion:^(BOOL finished) { }]; diff --git a/Coach Marks/DDCircleView.m b/Coach Marks/DDCircleView.m index 5952460..872c653 100644 --- a/Coach Marks/DDCircleView.m +++ b/Coach Marks/DDCircleView.m @@ -59,19 +59,17 @@ - (void)animateSwipeRight animations:^{ // Slide Right self.transform = CGAffineTransformMakeTranslation(260, 0); - // Fade Out - self.alpha = 0.0f; - } completion:^(BOOL finished) { // End [UIView animateWithDuration:0.5 animations:^{ // Fade Out - //self.alpha = 0.0f; + self.alpha = 0.0f; } completion:^(BOOL finished) { // End + // Repeat [self performSelector:@selector(animateSwipeRight)]; }]; }]; diff --git a/Coach Marks/DDCoachMarksView.m b/Coach Marks/DDCoachMarksView.m index 6916e40..775b20e 100755 --- a/Coach Marks/DDCoachMarksView.m +++ b/Coach Marks/DDCoachMarksView.m @@ -78,13 +78,6 @@ - (void)setup { UISwipeGestureRecognizer *swipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:nil]; [self addGestureRecognizer:swipeGestureRecognizer]; [self addGestureRecognizer:tapGestureRecognizer]; - - // show skip button - UIButton *skipButton = [UIButton buttonWithType:UIButtonTypeSystem]; - skipButton.frame = CGRectMake(150, 500, 100, 50); - [skipButton setTitle:@"Skip" forState:UIControlStateNormal]; - [skipButton addTarget:self action:@selector(skipButtonTapped) forControlEvents:UIControlEventTouchUpInside]; - [self addSubview:skipButton]; // Hide until unvoked self.hidden = YES; @@ -157,16 +150,6 @@ - (void)userDidTap:(UITapGestureRecognizer *)recognizer { [self goToCoachMarkIndexed:(markIndex+1)]; } -#pragma mark - Tapped Button - -- (void)skipButtonTapped -{ - // set all coach mark user defualts to seen - - // go to end of current coach marks - [self goToCoachMarkIndexed:self.coachMarks.count]; -} - #pragma mark - Navigation - (void)start { diff --git a/Coach Marks/Images.xcassets/.DS_Store b/Coach Marks/Images.xcassets/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..74439904d656f6cd44169989b1abff262c8b7894 GIT binary patch literal 6148 zcmeHKO-sW-5PhRP6ucBK_P9q+1^+<|RVaAUKcG#e6{9I?@A-lLCw;RsEltf?L}p<3 zO=f3aHV?8N0HoY3E`Sk$A)BJ8(_uy_RP(x-GhfBJW;_4NMh_UHUddN01??9NVZ57=~uVWB`M5DJ6>p@1pCJzH&fViI|X!o zNNkFQV{4d~4tDtpKpZffjlLd_wI(?hj;$d_Xkw*AD;2+Dh?O&*Jg;zU4XqsFmk;qb zZ!a&B-%kFN(;-2W>p5&%DC1HB=Uj=W=2k1hOE}g#y2zz&9TwLz@5q literal 0 HcmV?d00001 diff --git a/Coach Marks/ViewController.m b/Coach Marks/ViewController.m index 06ad7ce..239692e 100644 --- a/Coach Marks/ViewController.m +++ b/Coach Marks/ViewController.m @@ -7,6 +7,7 @@ // #import "ViewController.h" +#import "DDCoachMarksView.h" @interface ViewController () @@ -17,7 +18,35 @@ @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. +} + +- (void)viewDidAppear:(BOOL)animated +{ + [super viewDidAppear:animated]; + + NSArray *coachMarksDetails = @[ + @{ + @"rect": [NSValue valueWithCGRect:CGRectMake(6, 24, 40, 40)], + @"caption": @"Synchronize your mail", + @"shape": @"circle" + }, + @{ + @"rect": [NSValue valueWithCGRect:CGRectMake(275, 24, 40, 40)], + @"caption": @"Create a new message", + @"shape": @"circle", + }, + @{ + @"rect": [NSValue valueWithCGRect:CGRectMake(0, 125, 320, 60)], + @"caption": @"Swipe for more options", + @"shape": @"square", + @"swipe": @"YES" + }, + ]; + + DDCoachMarksView *coachMarks = [[DDCoachMarksView alloc] initWithFrame:self.view.bounds coachMarks:coachMarksDetails]; + + [self.view addSubview:coachMarks]; + [coachMarks start]; } - (void)didReceiveMemoryWarning diff --git a/Coach Marks/en.lproj/InfoPlist.strings b/Coach Marks/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Coach Marks/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Coach MarksTests/Coach MarksTests-Info.plist b/Coach MarksTests/Coach MarksTests-Info.plist new file mode 100644 index 0000000..bacd87a --- /dev/null +++ b/Coach MarksTests/Coach MarksTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + Doria.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Coach MarksTests/en.lproj/InfoPlist.strings b/Coach MarksTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Coach MarksTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ +