From 410edbf78aed9ab302c9a6e1ad749c356481cdf4 Mon Sep 17 00:00:00 2001 From: Jameson Quave Date: Sat, 20 Sep 2014 19:28:32 -0500 Subject: [PATCH 1/2] Part 2 --- CameraTutorial.xcodeproj/project.pbxproj | 3 ++ .../xcshareddata/CameraTutorial.xccheckout | 41 +++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 0 -> 16005 bytes CameraTutorial/Base.lproj/Main.storyboard | 6 +-- CameraTutorial/Info.plist | 2 - CameraTutorial/ViewController.swift | 42 ++++++++++++++---- 6 files changed, 80 insertions(+), 14 deletions(-) create mode 100644 CameraTutorial.xcodeproj/project.xcworkspace/xcshareddata/CameraTutorial.xccheckout create mode 100644 CameraTutorial.xcodeproj/project.xcworkspace/xcuserdata/jquave.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/CameraTutorial.xcodeproj/project.pbxproj b/CameraTutorial.xcodeproj/project.pbxproj index 43b16a9..6711837 100644 --- a/CameraTutorial.xcodeproj/project.pbxproj +++ b/CameraTutorial.xcodeproj/project.pbxproj @@ -161,6 +161,7 @@ TargetAttributes = { 02F5BDDF19CE1C4900EDFD47 = { CreatedOnToolsVersion = 6.1; + DevelopmentTeam = J6H4826VVV; }; 02F5BDF419CE1C4900EDFD47 = { CreatedOnToolsVersion = 6.1; @@ -407,6 +408,7 @@ 02F5BE0119CE1C4900EDFD47 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; 02F5BE0219CE1C4900EDFD47 /* Build configuration list for PBXNativeTarget "CameraTutorialTests" */ = { isa = XCConfigurationList; @@ -415,6 +417,7 @@ 02F5BE0419CE1C4900EDFD47 /* Release */, ); defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; diff --git a/CameraTutorial.xcodeproj/project.xcworkspace/xcshareddata/CameraTutorial.xccheckout b/CameraTutorial.xcodeproj/project.xcworkspace/xcshareddata/CameraTutorial.xccheckout new file mode 100644 index 0000000..423a484 --- /dev/null +++ b/CameraTutorial.xcodeproj/project.xcworkspace/xcshareddata/CameraTutorial.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + F44B9D75-2F78-4C98-896B-7ED2C3CDC9DF + IDESourceControlProjectName + CameraTutorial + IDESourceControlProjectOriginsDictionary + + 3929C7655DEFEA93ECF5D8C0DFDF6F01639B9DE7 + https://github.com/jquave/CameraTutorial.git + + IDESourceControlProjectPath + CameraTutorial.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + 3929C7655DEFEA93ECF5D8C0DFDF6F01639B9DE7 + ../.. + + IDESourceControlProjectURL + https://github.com/jquave/CameraTutorial.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + 3929C7655DEFEA93ECF5D8C0DFDF6F01639B9DE7 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 3929C7655DEFEA93ECF5D8C0DFDF6F01639B9DE7 + IDESourceControlWCCName + CameraTutorial + + + + diff --git a/CameraTutorial.xcodeproj/project.xcworkspace/xcuserdata/jquave.xcuserdatad/UserInterfaceState.xcuserstate b/CameraTutorial.xcodeproj/project.xcworkspace/xcuserdata/jquave.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..6910bea6bc246def7d4adb2b35d072994f63e2db GIT binary patch literal 16005 zcmdU0d0bP+_Mf?TLRga!Vo2B$K>}oju(?z#iwkuD0dYaa01;9{LbD)9ZRd8cTJ65q z3aGVO+iGpCwfp*7ySUb_wpzPy*6ypnbMGaAw6^bk-sk=E!w-_o%sq4FoHOTq&zZT+ zoo<&uke`1DVZ+w&OxP29L)Ra3wwm*Wd;`2QS1ecqw+{01o06_yT+(z8qhH zuf!|ydfbQm@c`a{H{wnBF1#7vjqk(vBiW?6>TX>`&~^>}i4sCJ97Ffl2v3ixr(eIYsuB*8gebUj$BXH zkvqwH(nszl50IVYLGlpUMII)*$us0x@*H`d>?8Zh0dkPMOOBHF$Oq(O@+0|){7il! zzmnf1NWw~pL?VfqJ<1bwyAPrm6pP|eJdz{joSAjjrOqDzeE2)Ka~ejqxE+3fKT1F{ z%22i+DNrIM^bj>PDMnQkjxH&v96iaBUtUsaDJm;1wUif?*)5|-+b7#g3M=gSlPjAP zs;bIKbG*K#{!T}Wv(noV>~MMlp^4Q^3p%S>K@_efE~l?ap@ZRN zEdlUSXJ&W!Wc6OJyV>EZ@;A8ru4Xq(rU^3w%P5cNO6lz_C@nVY3-SwAnDxB{qf7WN z_R`W7D-H zs)o26Y3c$tI@FG9Ps11`5K&{O7fI_e;d1R7kGZqWJP{NY@MJ2T&B3-dUZElG#K~MvKX0NyW3tQbtZ@X|7s6L@K|B=&ih-@d zQy4N5tACkmNqDO?qgIsLhgztv4>_rxmrP=1Lw$GwRRL#*U(~1zx%<(%Xek{@b7)>j zMILk>QuZS+>ZF-8s~`E0pN^v0)UXi93^zpueCIit;b`-?0>M^iP1eM#-a!11Xd%l{ z?}C|il`b$>ugBp7lUR<%g{E17=%1#!2&T!UhOCKR{V*bzq01M|teX)GIKYAh%NjtJ z@wO$-aV1*Wq(}-67@BMVT{(QZ)#z%JJAkf2YtUM1rWR@)K-ZwP=sIenR$9-CDQ#{G z>_{ufdzvd?4XfBH=nAA*=X3*1aJGhfniTrKd897j3$_G;K4)mPx1jYXcN4l5-G**Q zcc69XPMS{(sGSzlB3ir&^`U;S^(?dzWziB^3N~I#>);pI;`eM_z|pd_!rRg5bApk3 zJq-?b5VmtNbP3$m`y3v>3%mpj3^>7MC0CYD3G>OD3iOHoMj!{fq1xl_sSSEOE>Byz z+uO2Ku)9G=Q48yAQl#?}500z?3NUv7Mh{X`Frl^Gj~+s~8_{;O13iFtq6g_{I);v= z8r_1H@dU$_d*4oOi5X1))O>_1% zDMo~rIH|kS;c0cY3ijKi$PTraxnWzh_VA2)CVPD|oy%$*LBF$AkVKQB0LD#qbUCZQ zL|qQIyC+1aqGqY8<-U=G_paTovkkr4R|kl88*qFeb+ey186UL1&y0M zvktz9v|mH+KD3Wk(7eOwAUXtr_%M1M9YJrPH_=<@ZSWzXcsbqM;^0NPXlS4EK13MN z;c$6|n)x^Z;_R+o5_)#1k0LsW&Z3pH2ILpEaM7FwgR#+YeRTKGil9;M1d%zzPlzOW<Eb>-leP_Y%))hiM=fpd6Zqzp_z$oF&&Bg$yZ{?;BR!WIg>8%% zA@=}o!i%wkE~OpR8-@wE6}Lsi?{e${=;r3*cjrVQeusGMz?~5zr(hpVp&owZ4J2Y@ z7w#E85--QSw3D94YmR2CsD7$H=x|R@oIb(UW3=- ztMN7XT6`V8o-U)^w1+OIz4Uy#f?hx`yc-$tO|XzERE2NDx8pnTI#?2g-&FXwl|D|N zpfB)drQnw!hBK#6#H4Bvn1~yNxDOl3)9UcG@^F$LEOzlmAyz@e?{&fE4p`j$VGk;j z;E77-5=YP-5M~g`>j#@^_{aS`yomH(AlJkYLt*SW-z`A$;k$7QzK6Hdt(5D-+vr97 zVzR~A2jTnQO%SrK?f3znzz%wGAKpnXp~m_d5QIX#593FXascnfkKjG@QhFJ^d;mWN z(tLtm0TR5Mx2(K~=>!N+2bqGWP52lFlz_}(`$mo(bVPq{pW^g(I0L>OaSJ^Mc@ut~ zUdcy4A&tf_;{7Q1F8mVSi(kgC;8*c$cpqI!SJBn1Y)JKaR@qQ(V$a!~0AIO=;kosA+-0=Iw`|1O+>J|e=-OdU&(d+3A z^u`VNQ~VjknlI>0^k#@NxA22ayLh3&>+Jk30sOn0TS7k8k>OKw=V69HV5C7!^9w*g9BC z0Zq*dgd|D_=mv_K6w{Z0C5^S&{wEGjKsk(t(Sk)lZWvNy2$c3SDLkM#Qx`yqU}r0& zE|tzMSBn#nFP~}nbDPGx{9Yl5kIidR7{Zd~6ExB6Lz7tR1gqm+^Fby9majucn2}5p zU#)6(_??aL*XMKtvg&dIzTHd*L~chh*#NacHvNo2K;7_B&=8Xg`V6`1@s=ejowS|+rShuMGRp|=>7B|(B{L`ICr{piBLtD zSLvmkIH$*0D@PLrsd5$lgIOR@dU~1Wc!o=oB9J`oQx;&C1ou zmsOzB5-~)e&O0JeY%@@?V9bK6V``XM@XpLEx~mU%O)Ae@A|#N0uX_;q@e22vh?5Pl6s&_TdMg=Y^jH!(Lew}6e`3O0T_b4Qax>GOI6 zq9yUcbtVWEY5;9ck1OaG_lc0TcL&5CO{eH+|I$VG!QS{6J@`6vC$kNPP z>09(|`VM`U9^HZr%n9&2A2A;@pD>>?5X+%*l}6vAsT`id;d3}VkHhD4cm=p6p^T*} z2hhH>)9dmC{6Ya6ygj6cDT6q27>Myh83(*DIGSY9{vi~Ih4FG{J0LT!Z-H0=uWM;{ z@-=*w_!X*I;HDsO21f0bv3%i{|33JgVjAM|%2LI2GB!MpKa@Db)W=6Cu&K)Pe} z_y*=Qi&)Gu^aJ`Ehe3+Pyt6D7L!R(|VU5qrA5_)_J9%#Z8~`K6gr5Xs;e(}+*(`yR zmGU6$U#IWS57&Wb?`ifzf&g-h2($n0$+=bKgDYdB*;w$FYz#fo$Hvi*AQ>Hs#H>Py zx*s+v%KuBqVeRHCL7gB2TWG>0Rs*7BRqO~>%_h^2=_mA4`q>6n%ciiYY#RNXo}%B< zUwJ|1Munv5J;YZzhhm7F0+pEc1rad>QEN3-LGQ$s#>JXGkv;p66Ixxz>YJb&d} zaE@#_I7haEen;hp*vWuJ0g!gc^h5d!55cP@b5s8at$GGq z1GzjqldYyd(x3X-Sy18lnJ%Wr22o%QqNx66emI?C=d$ylf*qmBKPzK^ozFJ%Zt|ap zof)x)I9jchyXV$WrlvThDbIUL7f zIfs)toE*7X&J#AvA5Dq)oNh}uZ}%3+%Yy<`FKd|W4MHx@*LkgF4Hb?~{-8kw&S$$J z4+=Wkoa2R+4+F*12Rp2F{9%znv<6E%)I6QO@iy>ekiQ8e{e$_8qq7qV9m2tZ-v-p3 zZh(hATMa;HDBE@TZLXSjug6(kXYCwp8aAq~a@x><(bjyczjdjtt_SJ_9k%JNW*;PZ zHsJtv8GrC*i&)YU{$Q4Gw@nqeB(MCtemHI^NaEbK&*FB!jI1VT+D;_&Q38 zEU*f<)8Z2PhkK(gUcelN45;eAbVt0*D#4K9MA12T0yoUt^@{Wv(BQP2| z&UROe-&!#xR4({`s=SER{8f2F>-%5mjf!$5|KrScxM^G}P7wvFoBkKoMObRsF6+c2 zfd8ioj9AlO75L{>{?}?0(=ql6_9_V4e<=vDYuL3Yi@k=!(HxGUwH%J6Mxi$Iinr{X zg}uf0(qgF26pk(!y<&cEadBY@e9I3VZm>78x1W*f9qc-wx}L-F9GrImRhdY&`iJ7e z?eqBK5_>_heMN(Ka1!$Bo7k;qq;?Ox4XEA6VFia1d1^|L+O!4B+It0RP#!2;F}Js% z7>Y-wVeTGeA2}nvJ?x`E?{N;RI6Q)HFSso3|}_t|6YarOiD1c!AT)^m6y zhch{x#o9M0w7yaNEAHiW@uI6Io1z9F0g7);Bf z2xqI<13_+yt1ajo%o@h=S;Jsa91;;8Yzv3(p0+YL&2RhCwN-JDjjEFTiwFYIr;@_yxTULX5AhmC?9`1MTl!0C8(FyMB1oczRd zT&;n2I6--TIN&1;k%CDPmJlK#Q5-gN*ur5ehiw~3G>IXx1n^2ehYL7t=Wr1<&Y$n~ zc1(7(fC?KcAg_1&YWVyP5;sx6_1@0uJaQORK_!TOlz8k?Rax&1GbXOP#_NY8daq}O zqciL5lLBLCL9cyGsTJyNg+)c;H6)?}QIHWFE(B3@&7E&?cU#)KS_VZxv?L`0j*)Z% zH^=%&28T=f2$<052!kfsqCvwQt-Ak#K~HxCJuU5Z!tE|=x2rkCRW7j!7EO$UHZ5B8 zm|;deY7@yP1)@!pVh)ex@L5AfEnJ$=Rh3WeY4*9`YQx~|l1Lj8Oofc$A*<>PbCgV9g0gPpURFFzCiNj}ecp`_(c(X~aDj#MqL-q*C zZB;qg`_jm{Ln}RpOpBENOj0d2{KeYp$lSlRws~YeX(S6cT*2W=4g+hG!HW%9MR7ra zU=^hyt8fghI>d^TEQw^rMV7+pDmjovm(@U>VsUqJ_NG`zja z5BdkA4mcZ!!R;o+nAWa9t5C4Fi0xxbm*f`~IZKLKo0sG_k8U0_rm(rFV2QJ}pt-1} zwZK`lBtPF-Fs3wrwt&tX#1vwl_@~rt52@}3atm*zHU-eJNUCCQL}Z|s4tH?a7tX-R7IH7o`Brid*~Z}}4lm}gV}RU8 z?kC$h+|1z?4huIb41bv{f>SuTf>LP!G-Uecf#q;9tj-C=SpH%o9A^IWXmJkV93X3A zwCH17kUpD1`oA&$N66!6TF?{ZN%9njmvFd^!|kv)CyK<-Ed6Yu#1vBH3uNz^o`0FV zLSE%C?8T)VcJt3GL;|&A|BjPGpDQ*M{(pBInJL1 zLDuZ3PGp*zLvICOh9#1yacBK!Zv$+TM#~i`scECKO>nbj@NRTWY+QVT3~ss(3Rk=c z3wOH80^n7egK!@Y?jOffc3xeurN!xlJ8TCNm9a@`?HO)T_p3%wLM8pl8X5)Hn&TQ~ z)=dU103$2BZm;i9dWJ4mKQc25+Us1)oiOW?$!VSL`u6xa{vXpz>tp^M_xp`;0ygN8uf39)p=C0WiYqjMA2Xop1G{L$APU`q; z+U5C3!O~bDXD%i?~xj`$S3QL!KH&K-kyDL#UGXs6-b2|2tqp~IPQ$H$Jx;wkW!#B@9p z*WpII2;P(E#D3fjw>7SYHzIbyO@b#x88cY?3wN0#elTo|^MryuIYB;L7{1)cAJ`8- z(?@6=$eI5Z+9aQluK^!`*Z7QlPPUOR$yb8!@N+l-?t{ZY4tH%LCmBLck#FHhk#Kk! zUB}^W4ljq3#dW+d%>3t_FCNhRn?b-6_>GOxte1cc~fwues4#RZ`DBMY~gb}6V?3ZA^I;W`jwmN$Bj)1;&Y(bH} zW`^Q30qIDh_-l~~u($HW@3F|e87gjk+ zmP9Q{o-JIW5Ufj!GT}|1Vl)<=4R41`Vr!vT=w#jOdGJ0+kX;V%gIvH;_Ad5ub}zi; zaTIXfaY#l!Vn2a|1ydU(sj}S=|<^Y(tD)$ zO7EBMknWK_D?KQEOZtKI=V%n25Uq+$JWI*$1aWSjP=C^V!L85jlC^)L+tk0 zhhra)eIfRx*q38pjr}0@hd4=`Cax&1ByM!v*toOeCdB#TdgCsMyDaXCxRr6Mw364DcN2_qA-60#F=67mvC5=JMCO*kuILc+v^@`TES z#)JzK?oD_l;k|?}624COCgHn;9}<3&#mbUpDY7(~PBv1OC9})UmQ~6o%cja^$f{+t zWOcH7S&OVw=9dL!-LmDf^JQ1cR?1e%u99t(?T|ev+a-HM_NeS}*zDV98 zcgox3Zn;O^Dfh{H1?edNC9r9iB-SR#1C*@DepOrr^e^Y*3 z{LE3kr9j8s%8Rw-^)Y*lPi+^5*CctG)>VwYmKVvpi6#XiLW#UaJ( ziZ>K*Dc(^WRlKh_t~jCiF;S72kyxBKF|i@BC-JJpn-e!CZcf~ixGnL%#O;Z1CVrIo zY2xRJUnQPQJeByPk|^Vp2}-##QK?a;DASY~O1*NrvQ>G$@>1m$%9YC1%3GA1m0Ohe zDDPF?uiT;BseDNJobm3V-G$*MgsVC{Oq_s)c zBwd$uL()x2>y!GEHY9CI+MKi{>A9pYl73NTs!XaNZus zYJ+N%YO`vKYL{xaYLDtM)f1|hRj;b{sSc>#Qyo)%p!!ht-3UA)VMOu>?TFM7=_A}D zf+JRqxO&8<5igDSR*lrrYL!~8)~Hj|S?WBsRb8YWub!wbS68YRs9kEGI-u@ScdM7H zFIHcwzFd8!dX@Sr^^NNF>aFT$)ce$Ls^3<>tA0;?O#PYq3-wp(lj>9I?~;|tw&dF6 zrOAQhVDhr$OOh{7zA|}r@|xtUlQ$%9Pu`jQQ1b5NJ;{$HKcBoe`IY3?lJ_ScP5vPH z!{m>XzexTn`DF5`ngoqplc-T^G@2AmnkHLg*A!}sG$on}&1B6~%{0vnO|@pO zW}&7@0u9w%q`5@1Mst&9gXV6{R?Rle4$V%@Lz;&*FKG^HPH2AC zCTXqOe63wuq%F}_Yv*d4v`e*Xw6|(+*RIp9*Y<07X?JV)Xdlx)p?ymGl6JrLp!Tr# zi1tnGN7_%cpJ~6){;d5~`@8mZN_>heMUkRR8JS{D$xpGT6s62asZN=dQkOD2Wl@SF zr6t9g;z_wV<&KmWQud|%kn(Hl$W&`;Me3x~DXCSd(^6-oR;SKNtxKJqIw#eg>PhWP z^`!<=yHk5pFG%H5FHXHQ_43qpse4inryfuJInA6lA#GloKW$~&O=;`X`qMU~ZA#mm zwmt2EvuS{Q^z9#+Z^uy`L(?3uDGX3lH zZ_>X_|1JHG43xoSkc_B|f{eu(Ycn3scrN2#882nLlJQ!`{*1RW-pe?a@j=Fi8K*LS z%=kIuR~^zZI--lx8FhuaiMmO;DY`1%OkItxR#&fEsPpN1briTp8 zx{bPfb$fJA>Ymm;t9wzmSNDqUHQnpFcXg+9zv@%AUot{$l;5 z`YZIS^lS9D=x^8Gsqfcs)Nj^r(eKjl*6-0jmKm3+$xO*i%hY8q&Fs!xo_T)eg;~#J z?aMllbtvn|D8s12QN^Q5M~%&1nSE3C`t1Jf4cVKrH)n6p-kH5Cdw2Gu*^g(xkbOA& z{p>HZf5`qR`J1jcEd))X2Vv)HpBgf9fm!I7YzFiM-3kvJ~e!9_|ovT z;U~kdhCgyp4x1y%k>#Z36ytne+$@@6(yS(r7e#raDC^1GGd8E-Y-VO(z< zFm5v5ZG6bM+xV#Q3FA}7XN@lyUo?Jh{Lc8J@fYK7CaFnfN;PGeMw&*MOeU+Tz*J-^ zG1ZvbOaW8S)Me^6U23|_bh+tD)3v5MO`AA=5F_ zXQnSrCrzhJr_IQW&8%5rPBN>_T63B?!)!K>Gfy=)nirWJ=2ml?`CM~{xzp@7cbTs= zuQsnSUv0kDe1rLB^KIsJ=Jn=&^F8KW=6&XO%->p~E$NnG%S_9B%Z--XEd!QqmPag4 zS)R4LV0p>1-*U)u#PX))ZL7?hXDzo*vo=`gSr=HFtj$)Zwapr^_F6Bna@I?%tE_9R z*I2K&-e`To`lU^4%e3X$M%yOYrrWA*wYJ%|1-2$zv(0I1vvt~hwr<;{w$-+^wrg!S z*lxGoY3sLbwB2R9-}Zp*Y1?bI*KKdw-m$%B`^fgG?F-x2wr^~|Pg?kF0EIe3vxbSG#J@N^MVM2ez{Vv6F6n!Zjq&^ Sa4;WW#J>_vL^^ - + - + - + diff --git a/CameraTutorial/Info.plist b/CameraTutorial/Info.plist index 4f04142..66648f5 100644 --- a/CameraTutorial/Info.plist +++ b/CameraTutorial/Info.plist @@ -33,8 +33,6 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight diff --git a/CameraTutorial/ViewController.swift b/CameraTutorial/ViewController.swift index 43bb908..fe67e9d 100644 --- a/CameraTutorial/ViewController.swift +++ b/CameraTutorial/ViewController.swift @@ -42,28 +42,52 @@ class ViewController: UIViewController { } - func focusTo(value : Float) { + func updateDeviceSettings(focusValue : Float, isoValue : Float) { if let device = captureDevice { if(device.lockForConfiguration(nil)) { - device.setFocusModeLockedWithLensPosition(value, completionHandler: { (time) -> Void in + device.setFocusModeLockedWithLensPosition(focusValue, completionHandler: { (time) -> Void in // }) + + // Adjust the iso to clamp between minIso and maxIso based on the active format + let minISO = device.activeFormat.minISO + let maxISO = device.activeFormat.maxISO + let clampedISO = isoValue * (maxISO - minISO) + minISO + + device.setExposureModeCustomWithDuration(AVCaptureExposureDurationCurrent, ISO: clampedISO, completionHandler: { (time) -> Void in + // + }) + device.unlockForConfiguration() } } } - let screenWidth = UIScreen.mainScreen().bounds.size.width + func touchPercent(touch : UITouch) -> CGPoint { + // Get the dimensions of the screen in points + let screenSize = UIScreen.mainScreen().bounds.size + + // Create an empty CGPoint object set to 0, 0 + var touchPer = CGPointZero + + // Set the x and y values to be the value of the tapped position, divided by the width/height of the screen + touchPer.x = touch.locationInView(self.view).x / screenSize.width + touchPer.y = touch.locationInView(self.view).y / screenSize.height + + // Return the populated CGPoint + return touchPer + } + override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { - var anyTouch = touches.anyObject() as UITouch - var touchPercent = anyTouch.locationInView(self.view).x / screenWidth - focusTo(Float(touchPercent)) + let touchPer = touchPercent( touches.anyObject() as UITouch ) + //focusTo(Float(touchPer.x)) + updateDeviceSettings(Float(touchPer.x), isoValue: Float(touchPer.y)) } override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { - var anyTouch = touches.anyObject() as UITouch - var touchPercent = anyTouch.locationInView(self.view).x / screenWidth - focusTo(Float(touchPercent)) + let touchPer = touchPercent( touches.anyObject() as UITouch ) + //focusTo(Float(touchPer.x)) + updateDeviceSettings(Float(touchPer.x), isoValue: Float(touchPer.y)) } func configureDevice() { From 6a0995ef7a1b288d6f32c9b5ac2a5fe951dee524 Mon Sep 17 00:00:00 2001 From: Matt DeBoard Date: Fri, 10 Jul 2015 13:48:21 -0500 Subject: [PATCH 2/2] Update method signatures for Swift 1.2. --- CameraTutorial/ViewController.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CameraTutorial/ViewController.swift b/CameraTutorial/ViewController.swift index fe67e9d..bdecfae 100644 --- a/CameraTutorial/ViewController.swift +++ b/CameraTutorial/ViewController.swift @@ -78,14 +78,14 @@ class ViewController: UIViewController { return touchPer } - override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { - let touchPer = touchPercent( touches.anyObject() as UITouch ) + override func touchesBegan(touches: Set, withEvent event: UIEvent) { + let touchPer = touchPercent( touches.first as! UITouch ) //focusTo(Float(touchPer.x)) updateDeviceSettings(Float(touchPer.x), isoValue: Float(touchPer.y)) } - override func touchesMoved(touches: NSSet, withEvent event: UIEvent) { - let touchPer = touchPercent( touches.anyObject() as UITouch ) + override func touchesMoved(touches: Set, withEvent event: UIEvent) { + let touchPer = touchPercent( touches.first as! UITouch ) //focusTo(Float(touchPer.x)) updateDeviceSettings(Float(touchPer.x), isoValue: Float(touchPer.y)) }