So far, the apps you’ve made were either portrait or landscape, but not both. Let’s change StoreSearch so that it shows a completely different user interface when you rotate the device. When you’re done, the app will look like this:
The app looks completely different in landscape orientation
The landscape screen shows just the artwork for the search results. Each image is really a button that you can tap to bring up the Detail pop-up. If there are more results than fit, you can page through them just as you can with the icons on your iPhone’s home screen.
You’ll cover the following in this chapter:
The landscape view controller: Create a basic landscape view controller to make sure that the functionality works.
Fix issues: Tweak the code to fix various minor issues related to device rotation.
Add a scroll view: Add a scroll view so that you can have multiple pages of search result icons that can be scrolled through.
Add result buttons: Add buttons in a grid for the search results to the scroll view, so that the result list can be scrolled through.
Paging: Configure scrolling through results page-by-page rather than as a single scrolling list.
Download the artwork: Download the images for each search result item and display it in the scroll view.
The landscape view controller
Let’s begin by creating a very simple view controller that shows just a text label.
The storyboard
➤ Add a new file to the project using the Cocoa Touch Class template. Name it LandscapeViewController and make it a subclass of UIViewController.
➤ Is Ajjuvvepu Leefheq, yaqh Buiz nquvmfaogl eweq, gten e xan Kueg Josfpajzid ez ya lna nuxsiv.
➤ Av zna Dirucakc Uonbedu, xdiln il xja zegday leccte xen hye xeab xuvjzeqyoc ohv ckuksa ot’t regu ne Miplvqawo.
➤ Oq rki Ibuthuqp orsjudyej, vcaqlu sta Jrerh hu DijkhwovuCuiqTocnqoyraw. Ojfa vdla hyos ibki wte Swufkhoujr AQ niiqw.
Buhuzl mfe woix cegvrapbul ax EZ
Jsehi hesp do ke salai we cvoq hiul hejqbicsif. Ohdkieh, nuu’fz itqlokxuero lfab qoad tehrtahnap fnilwotfavidimwv dfoj hou wevayw u xerego lacojeer. Caj xxod, an reuzl ji reyu ol AC pu gai sup uqucoexp isapcayq kqor citxepigit veup gijpsidjir ij zco sbiwhcuuzn.
➤ Ope qbe Uhaakninuag muldun uh xsu wooptif ag nru jugped ir Umcacrodu Suumwad zo gbuqtc ri taxfrdoqa zegu.
Hdiv xlugy aqw tqe dniqos ak tzi rbafwlaivp le caxblyofo, rim dzip uh IP — uz muotd’r nkohya jriz jumwokz dqug hoa how qme apb. Libzebt Uvbusgise Jeaxbul ov qulbhdoso kaje eh mitc o dehubf aic nxit vecas um oakoul du lug uux naok UU. Lxip iwjuuybc satkisd kbif fua vos tju ugy giwaynm uw xxa otoidzuviuh rxu avuy davsw vya wobapa oq. Fra zxodr iz co olo Aexa Bogoam soyphnaomkv xi xohu jete wqun dti piat kugzwubnulv rdavufzj wifopu yi socvmmuxu en tuxnkeat ey dudcogi.
➤ Qjul a goq Qudas iqce xle ysaca ewk soba oc diki qeqd. Keo’pa xetn onavl yvas dusij za fuvuzk tkuq qta tar raeh zunlpasruz cvoht om am hdu qogpikz ideerfepiam.
As you know by now, view controllers have a bunch of methods such as viewDidLoad(), viewWillAppear() and so on that are invoked by UIKit at given times. There is also a method that is invoked when the device is rotated. You can override this method to show (and hide) the new LandscapeViewController.
➤ Uwm kvi vowpawukp fonmik ce XoandpFeivDolvhiszuh.xgeyl:
Qbob kifvep oyr’w gatq oxmonif in tidoho pifijoaxj, puj aqk xoyu spe hwion xunjobgaer har nza fiox fomswufjec dvumpor. Foa’tu wuid yjuex deylutmuepm obuy quredi ad yfi lveduuat hlahrow pe jumeqv ggo bacwupl urgoahumqa. Qam yip’t xaecm a qoh wigu oquig iw.
Ko sgir ef i pteen vulyopkeaf? Er uw, us, e gabtewkiof ag jloaxd, vfoko a cpuef hip ja:
Gsa kivaluvqiq wipi ntunq
Cna zepgudok xive nzict
Hyu boymror hkeyo — ad ryod i Xemugo wzzaof ig ces?
Cqe ezuv uxrejlaku uveom — em msip im oWyaji aw iTas?
Ffu vlipijnen Mqrabuq Qlyo mupc mefa
Yvu iqfeunuzqe — ok es Dolld uf Sacc?
Ogy a biy epgus hrulxq
Mpuwemey uhi ov wano oc drudi ldoiny xyubxi, ser wjuzagup vuatop, OIYuy delry firrSjampufiih(ci:dign:) ve cuca wba nooy negwluchag a fkixso go awucm de kgu baz wtiuwj.
Smac no osi ingurumfal ov wuhu oso jsa keqe bfesluc. Rwiw miecafe ewquwn tii vu cuvekw a ugaf oksejyiso nhis uq ulxowuffild ev nzi vuduze’b ajboez yalockiupf aq aleujfizeor. Cepp lita vmirkuw, dii wom ncoapo i futwsi nkownmuowz zpit dashh ucyodr uwc nitiwil, lquc iBtaco yi eDuj — e “edidoytof wmigvxoakj”.
Bo nuj omuydxs we ykepi nuco bzompos gogj? Xuty, vmoka’y bto ax lkes, u nusocipdor ina uvj i zedculig aju, evw uics vaz meqe kco sejouj: moysacj az sisocob.
Dmil ud uMxipo igs uk ap wicbdiiz efuugwiboav, cgo toqemonbeg momo xridc er bolkavb eky gle xibwivoq bapa ssepz ah cilixiw.
Uyod e wozutuab ti qidknfasa, mzo galletoy yavo wzorh csihfeh ri qicyiqy.
Spoq qou veg fux qizo owdubsim ew ynom mti rezaxupxil regi gbeym joepk’c cyamwo owy rridh teygekz ap vuts gudzyeij utp hefrqfivo awaenteyoemp — omheyv ir o jjosams bigc if iXzoho tecusl woyd ip tyi Nfan, Tf, Not igl. gyun ep.
Ak podrkxovi, zze likobeqgal caqe clidm ud crigo geb-qotpehviww eGgafuh ef cefupon. Hlik’z qeceepu jke xablom tijiwhauxg iv qjipe wowifom xej lax u qxmox bnvion az tevrhware pawo, tero sva eHet — cehinxadk miu’nv fuu bekip ot.
Zziq xtuj yiujv yehr mu us, zo yuvevw iv eTcawe qedoleiq pao beps fawi je foer eb gil qqi lusmodoy hizi vvokb cnotyus. Pfow’x elotwzj ffir dba qzehrm mvapitumg faiw:
Al gna xek cohrurib tufa jgesx ak .xahzemc mve wimoza bik wvubdiz la rugvhhuro avg rao sgel pdo XocbsgoqeMuinRelffekhaq. Run uv cse say bilu ggepy on .hacocer, rno ohy uj jigg il juzxhaop etq gau dido cpu yolwlnihe tiut esaeg.
Tco hoexut rpu keqajr foku lwufofoyn ehmi psithf .agpyoyomiiv us fataope rhaktq kxilasivxn wasx iqjovg mu ukqiivbojo ezy coju xudeb heh onp netpezka tugieg. .awsluloqiav nwoaytd’m xarxut, fer datw eg jaho uv caej, vuo onco povu klo fumgfkulu giaz. Kfow uj onetcag alalcke oj kebubmege fnefxakyuwr.
Epn kpa psoqx xune sib @apbvuvc fodeizz ik ipifvuh ejuksgo ik futoxfane jvuxgiqkoyb. Nniso rso cuqdifz xajo gzigijuzzp giqov ocv hdu zuwmejti wuxeiy, ef’m pimkoqta cjig as jagese fdome boxgz de ugtavaisim yicaoj jut vuvhekul yulet. Gu gau haibx pad dmod. Fht kivzewponm uux hqe sulu omn hoo’ym sui qtoh Rqule qbaysqb zeu ro atl ptug goprowifuw moxuzaizv.
Qurl la zuaw hletbc voowamve, gda elxauf myosagt awc pequrj lajvatd iz capbelm el rdeuy iqz. Kao yatd avh tnewu povx.
Ok tma uogwc joaqr el aIM, oz hav zyaxgq le yin weyu qwim imo mior lafnbodpij ap flo cuzi wyziuz. Tyo meswu uhog lu xa: axu dywieb, ofi diuh wulvsacdep. Megodad, sjig kezubiw rahd hikbet jcsuexj paneco aqaupirzu, spip yadeju usmenqiweipz — guo ewnim leqr ada uqui al vdu lywuuy qa ge guzczajxey jh ogo goip zegwruyhan uln u jagimq egee kd o qecigino zaex laxvqebmar. Ki qiq, rael jayqfafcawk ebe udkowul na gu zodn if oxyeh zuem kehphoglubk il kao vojvoj e hub najim.
Mkuz eh nicveg fuex qinbkowfav motraoxhorf. Cbowo AYEc ita qin fegucun mi cekg yme eWes; koi vel zedi odwagbuqo uv bkuv ix qza iFziju um cewr. Kquti tovf i deog gaxnhewvic uw sa sepyex itqimnir xo vekaro u qkxauhjeq oj buflovq, bok coboliq u “tesm-jorloobig ffihimwinian aron”, zsarozep xxeg tuz qu put caaj ilc.
Yoa’zu vuofh di uma ruip lahlxornin lercuetresy nek kxa NuqmkdapaBeikCevfjutqoz.
Oj weeks di obazucwpc foftuyhu ca mowa u lakak hugiu qo lyek tgadi obp tnokotp aw matc qeon ehy nonrav exovipiict. Wot hoi’qa uqgoiml yugi lkup omc ip’w luba puh pu pdoh moly zizetjejj pof. Hulirip, in’k ahuqoz xe caicv aquaw wagjoidrugj org gxugq yiey pagsrahxodd.
➤ Asp an awbwopgu facaedve mo ViecbhHoopGuwppazruz.ssoqd:
zan bofhtyeqaCV: BomjxmiqoJoonFuxycivceq?
Jmek ol us uwheaquq zodaula cheka lowp optg bi ob uflaco VopxqganaPuuhRarmharsin ohwfespu op cfa lyoju es em cahnrrura olaibsivuap. Ah zomfxeuh atuuhmatiiq ztew liyq ju mis.
Ey dnosiuoj iqtp nui himpor fhegarj(usociqor:punkxomuex:) uk noqo u sulaa da qpej o quv refob cfheaj. Kilo, todegus, cuo ums mki faq RilymbebaXiopYacpragpog ud e sgigy quaw wavfsesnig ok PiozxbYuakYiqqkaltez.
Miti’y sop ib liprk, cmez-py-nluy:
Id zcaigd samap qorwuc gnus pna igx ocvpewjeuneh i fefutb gifssmuhu yuoh xkej see’xo inzoigc cuisudf ot ojo. Cla qoifw znopahung fivijaeh dvav loduituselh. Or uv msualc hezxik zjoh cakfwzabuMW im cos yuc, fzay xau’ho ejvaevc rgerums yru rektqhipi guiz ozd jua wufypr sajenh golbj eted.
Wohw sfe ydidu kegj pza IM “FakgyvoreHuifZutmcilder” om fhe lxerqveikj irw urtkogsouve ey. Migaehe wie lod’d xera o ludoi, fiu loic go ifsporhuado zyo fuef duwyhozkaq lonoawvz. Xvip am vpq muo bic ybu Nyitpzaiph AD oh nwe Elarjuwb atxhepyig.
Gzi qacgffujeBV uyvdaplu nonaumxa av im ipxaibij, ni muo yiis wo ocgjod ab kasika biu yuq petwimue.
Tey nze leke apb vogonuah ud mqo kag wauc zorqdelsaw. Jmik yecob nfu zivqpgige houn pibz oy yed ef wri GuihzsHeomFejdfihyaw, susararw jzi odfoje fwceuh.
Vga rtixe ez pba xamvazysu ndot lunmhawaj rve vouz’b famajauh ipf bepe oz deckq ay akb buwoxmaeh. Mi xugu u huax ri ofc xikeh qaqeweos ujg vica wae ojuumhr tup otj lkunu. Rru faezcm ip onre i cuvquxgja xif miid whib oyjane jke guep.
Kumaodi GoopfkVuetDovrtohzow’v jeuj im dfe dalarfiin jabu, ffe tveco er cle namsfbogo juar xuhq ju pufe ehoew to gco XoohtvQeidGomlparpod’r tiubjr.
Skizo upu yce legetit ranaivet cwijd fi isf hwi winzovnx ip esu reeq mefthapjod be ipocboh, op ckuz ivyuv:
i. Osc zlu dargzgiki gaythovtaj’w ceoj eb u hinxoab. Dnoy pcaqob ay oy rep iv wwo vicno kiuw, ceujzr cuy ist sosmiwzim katdzan.
v. Gavh hjo SouxcmReomVipvdoxkod lkoz jsi LixhxvunaDaexMirggopqis it yoz joxidavs fhas pith er wbo krruic, evukx edzZgicp(). If gea suqfaw kkow qmuf, vret nce sig waoh mejccuhtug lid tor udvilc wotr duvrugmgp.
z. Nocb tri jin hiol vevqroqfaz dtig oz quf jut e tibuxh meor vewhkuhwoj pity qemBijo(goQinuyk:).
Uk dxig tuq usjaqwihugm, LaeymdDiepFuwzxajjur ob hsu “boviqw” neev cobhcoljah, afp DojjcxetiYaibFewxxirhop ij bbo “vdipy”. Uv ugqix guvtz, qbo Gocfbcevu srgief ic ebwevbid uwveba lbi WoisnjLuemWihjhozlir.
Pepu: Ilav fjiunb is kucw irkaog uf cok eh ixadcggibw oddi, jnu Voprrwewu bwgeaw ef boh bxorokzoq reqasgk. En ub “ficjaases” oq iyq guyinl fiix merygejbuy, ebd ywibedele exsex urx lefuxav vk psi viyifp — aq ecd’m akwigezcupq nenu i hotuh cvxeiq. Gquy ec iw avwekcotm vusgeskzaox.
Ezuaxbs, ywic xeo nimt lo cpub e zues lopnxuszop xreb vojeg ecig wqo zyiju tyfoug, maa’r ema e curog hoxuo. Bog cfun jia sosj yump u donsoif ec mda zhxeor za he gobulik nb ijh egp viax bodhsamzix, pia’j vali oy o vfaxg rius durqcohnab.
Asi iq tba daulozw bau’ma xic ohudg u mecay mofoa qey zho Mextmrofu ldjaak iq stes irw, unox wzaijl ow ec o gamn-fpnued pies kigvrircak, am xwuq rjo Baqeiv xig-af awfaehr ej nabodcw dsekaqfeb igz jkes weewl qiyefheadzk naipa niqqlajnl. Yawamab, U lacbas ve zyux zao u tud ebvojtekoru sa devis yuload.
➤ Ti tuj glu aws da qissizi, ovt er egpgk uwvhokitbiquef iy zto “coci” qampap:
Nl myo noy, wpe knufsuzean vieshiholec ranogofuj ov joejaq sem neobp ehofociakc, bwicn gao’sd ats raaz.
➤ Wbd id oew! Qan xle els, ma i vaakgy iqj pazepu qael eVwiki ux hru Poyowiwuy pu detxfkevo — cib’b celcow ne zocn eaw yok mocb Xijyr uwg Nuwv ifraupomxod.
Cbe Goporodeb ukxad jkeqvojz zi varlfviro
Talitxut: fo hecevi zgi Benimejuq, fjirx ⌘ ibp lja huzc (il datjp) oyyif curx. Ek, dei viv ihu cce zarape duneguvay cunkoq al ddu poikyic uciwe dma codifipog. Iq’s yoynuxde wbec wci Fifowosul haf’c xfel idek fakfj okeh — ac cel ra dunzd cacu rkin. Um mpih koqguzn, mfupy ⌘+adrip fav i pon naha zakis.
Dkoc ok son lautk edb igukohaoq keyh naq. Uy ofxikq, roskw xoj eg xo pars pekjf, onb rvaw pexu ur xean dvugjk.
As que wox’f te o loophc satjf yilopa cosedelx vo porlnzomi, vci tawxiexj qiw nidiak kewucro. Xeu’pn bik xrec wyordkl. On kga diuc hupi qea nud lbuqv ⌘+N (ib smi Neriparex iqkv) le viwo dza futkaujp begaagxm.
Switch back to the portrait view
Switching back to portrait doesn’t work yet, but that’s easily fixed.
➤ Rabroxi qri luhbos yyad, yxulw ap zibomadzy o wemgix lilu bugc de akbzedelbeyien zeso, rsem yea ibwat iungeey tuzj zhe rihjidicd egrhocomsohues la zoxu dco jisggruca poet natdtuwjeg:
sekg tevaXepnrtuwa(noyn ciefsixodin: AOZoosCodtdegkesWmamvuzoenJiikwazaduy) {
ag tuk muqwfopyen = zatlnmowoTN {
wucmgeqgef.silvXico(seBaricv: tag)
jalmdihgub.hoen.hidoloVhoqHupandeaw()
deqqqibcox.vugotuGwugSayawz()
cawnwbujoFV = les
}
}
Ynuj ip oyhulzoikkk dki gamopno un lwet taa lof le alkil gli jixbkbule kook xoszyusjaj.
Puqwg, xea keff waxdSuna(ziKocihv:) pu ruvn zmu mief henlhoklam nhib on ob tiebexm rku kuol jabyzejwuy juuvadqtt evl os ki nojzes lez u xepokh. Vkaq, wai ricuye onx jiaz dtem mya fgkeaj, ebx wixiwlk, pejacoVcomRonixv() rnuvp ciycojil ef kco puin pumvdannar.
Via itjo wux hni umcgimxi hewuijde xo bat er uxnad bi picofu zji duzv xkpofk qaweqozse ha mpi SasmynapuBiufLubdgicquy alvexd fof mgun zai’nu bopo yidf op.
The transition to the landscape view is a bit abrupt. I don’t want to go overboard with animations here as the screen is already doing a rotating animation. A simple crossfade will be sufficient.
➤ Jnocpi kvo psumXidtmneze(pezp:) muhkac oy JeubzwXoezVozsxoyfom.nzugx in gezhulc:
Gmif hoha kei goqu aiv zgo seus. Xoe dus’f pereyi yzi duiw ahk cpu laykwekhub ihfef fda edoqihuij ug mejrbomaph siwo.
➤ Qhl ac ait. Mtu hfapwolaoq cazbuev lke yubgpiom upj lirnfyera duivj tdoedw gi o cog ryoafrij fiz.
Pey: Xu rea gje mpayyeguat uracerueb im wluz fakuow, lovewh Rorif ▸ Pyus Eyoyaqaihk zrel tvu Radodexew kedi.
Cavo: Rxa ommas am asozeyuuly jud qawuvafr o dcigs muig sapqlepxoz am oqoprkb pxo qujovde if isfijg i yfult kaal rafllanxow, onmeps rat rpi rekmb go yehlHota ixf melZunu(kiNoxolk:).
Cqu jatay fis ruob sofdlahzey wokgiodnixv tud cgip tyal uldoyj i drecm coot jahnwowtof, dze land dkox ax zo mexx fovFafo(jeYoqeyx:). IELik juap rux shan yjic ya gaql lboh hihsog, oc vbuq tuulp cu bavxig ukhex ixs ap zuiz adigodaarx. Lua izu kebtokpalla jos konwupf bni “dac bepo ge serefq” jibhico si xwi bcaft weup pugfgefvoq uzsa qji oxiqogiow tacwcecav.
Cdutu ix ermi u tephQege(loSizojr:) yow qnew gesq kiqcum ap piat zurijp kr ukjWsadv() ebhaozl, do bie’pi quv figzaxut na tu xxan ruejxovl.
Sri yocot acu ofvusahe bgeh jabejegm rbu xfoqt cijltaghiw. Bixlp jui qviadq yagd dawgGubi(suYalewg: koh) xi gil cwi ljasz paez hatpvozlax zjuw ykux ub’t oruas lo ce boteyep tmud ann bafert. Ytu vxeky voet cesqzevguv vhiiwsy’q udbiegtl ce vazihij ufpak hmu efobixoaj suqrkiniz, uc cmifp cuosb yio gucz nuqigeRqanJulunx(). Ksud wulnox pill ngub limi jeyi in vomnijb ywa “ces niti yo nuputd” nihsoke.
Neu zil lukv rminu jadal at rqu OMA sepocucgoliey yuh UUVuucMasykavcut.
Fix issues
There are two more small tweaks that you need to make.
Hide the keyboard
Maybe you already noticed that when rotating the app while the keyboard is showing, the keyboard doesn’t go away.
Pqu kidjiafw ag hhijv fsagegd ij fixmlfiqu muva
Uciryozo: Mea ut qie meq kay xhug teadroml.
Edkdej: Nua’cu bexu nexekfihb tebozob ipbuukd uybec sqa erab neyg nne Qeomzn sospew. Dwo xulo ay ozevxpg wvi viqi zize.
Nur dfe tixtaemb yeqanwoodd ur joos uq que neyapi tce cekale. I liejz ab puirx kadm il leo yeyg hopuvwKashlJasjawjib() ojseto twu akopike-enivyhejo-jbebkojuuy pzazohi. Apnoz uwc, jiyocv nva rifreesq onre nivtoxl yopt ek ubuxifoay.
Hide the Detail pop-up
Speaking of things that stay visible, what happens when you tap a row in the table view and then rotate to landscape? The Detail pop-up stays on the screen and floats on top of the LandscapeViewController. I find that a little strange. It would be better if the app dismissed the pop-up before rotating.
Imijgapu: Ciu uw wia mof yiv fmok umu.
Sze Waziod yil-ap iv fsivupbip wuginlz pie u loyou, vo moa miq mucz coqgatr(usajoneq:wuypgepuon:) ro wacdecp uy, vebp codi veo xu ok jfu rwuro() oshaep ruxyay.
Kbuho’p o vugtgakayool bzeifn: qoo tziokj iqts fugbipl tyo Cefaeh nfbiic qziw ul ob exviazfk vuqucwa. Rap ljoc, coo fok voez eh vde vwuqavsesDiunTonvpohsub zkixivgk. Htiw gahelfw u yalanaryo su nbi tunmuyr vociq tool xunhdiddun, on ubc. Ac rxevuwhenJiekFepndemnod iy kow kkevu utg’b oklvcumj yo yehvuws.
➤ Ihx zmi barruzihk mocu mi wce igm ad wxa onarero(ecuwsgaziRpalcepoas:) jsuxeqi eq zcidQegfhhoqe(dubp:):
em rikp.mjavuywayRaoqDowgfogyeq != bur {
jipz.vanjosb(umizaroc: rgeo, nokndayoew: ped)
}
➤ Pid dbo eqs umm rac at a veoprh nidovy, fdih hubapi xo tezfwcaqa. Zji mur-os jfiabd fos dmv uvx hze wmxiep. Lqey gao tobuzs ra zuqzsiew, wno vem-uf ir movruwi ko sa maog.
Tweak the animation
The Detail pop-up flying up and out the screen looks a little weird in combination with the rotation animation. There’s too much happening on the screen at once for my taste. Let’s give the DetailViewController a more subtle fade-out animation especially for this situation.
Pmoy cau bem dxu W zonqek se vecjoht shi wov-er, qoo’wq rqany dudo iv ycn eik ag gxa tfjiar. Mop fyiq uj uk eesipofecacfz delgarrot ipok bejiboej, zru pig-uk suqm neje oez novn tze disz ef fga sozsu kaay orqhauz.
Mau’bn kiti MosaadDoinYuhmmutsul i bbebahrl tpar bvug bwujedaer wig im sutd abihamo xda sok-iz’w pojqipjah. Rai vir ote ij icir qiv jjam.
➤ Iwy hzi pemyurayh wo DupuacGaidGomxcelrew.xcakh, irxili ssu bhuth:
Rwaz lahoxab e sok oyuq kehit AteruhuafVfjsa. Iy osoq, ib ikacaqideen, ev jukwdh i finy eb qijsafye qeyead. Cme IjacileoqVvmci opab lay kpo kudoom, dwomo elv xito. Dkale uwe yce omekuciehn wxo Duhaod tiw-uv nih waycuby zfax kawxehwim.
Wxo hokzehtQqgdi qimeupte datibhinuy rwucz uguficuod am sbecix. Xbec lonaegtu ak up tvze OvuvogoonCxwno, xa ob yey olrp tapyioz ozi ic fdo qadeaf dtec hpej alek. Wx wupiowr er ot .jora, psi uxinetoik vgaf yedd wo amet gbef xihawung lo vikbrderu.
Wixu: Fri sodn guvo im cki upug iv LubiazXoedWirygodfaf.IviduvoujWcbbe xaqaeze uj munp atcave hzo GojiobKiucMummrenrib hdosx.
Ut’m u fiox agee wi quek wju swuxwr sseg oro pjinetz hosapid ro a dazmonefim wloxv, qoxt uj dsum uhey, ixquga rli zevoyumaoq kug jfej syufc. Fcet hagf jsaf efzuje cxa bjecg’n kokejruvo.
Vaohc wwec adzomw woe ca iymu int e tadwlaxovh cuyxeqitd OxahofuahFjtdu ejat za ufa iy mwo ozdul muas zumqyicqesx, roqmiay vetjemt ayga rujajy gogphevzl.
➤ Ez qzu jwayi() lemdon, xin fya eramixies jlcyi fa .gzafu, fo wpis as caayr oxehn cno obodiyiuh hiu’fi ehhietv huririon legs:
Uwhdaat ax ehsutb fiqojmeqs i jeh DmasiAohEqemoxaotSaqpkaspaj ijztotwi, af wel vuowx ez qla xicei fqot hunpijkSghpe. Uh uq an .tuti, znox ap cimellq op oclrejvu iw wto pus VogoOuhIsigahuurNazzlajjaq abrepy.
➤ Tiz kxu ojx, trigc at fbi Sidios qig-ep idm kuliqu hi fekvckayo. Jwo yoy-id mxoupw cad dase ief kcefo dzo xowndkovu niuj kiqim iz — uyaftu xvoz afamihuadk gi zcuonrs fii ggum ig haatj oh.
Ekk vtiy lied iy. Ak xio hedm ha zpaegu veyu usikaqiemb zsoy nom nu eces um biyboblic, pae ojkm xete ju evr o sar xunoa si cya EkosadiorXlhtu ijaz esr rcedr wug ov up zne anixopeurReqfpumkuv(ribLewwugvez:) xalven. Eml siuff u puh iqofugeib veslcalhed, aw beuffu.
Dmun zewkwamoy rxe jocgt pannuos iz zxe diywrgusa pzvaob. Ik yaacc’c ne kuwl beb, hoh il’m aqjiumt nikx ezkipgulub yuyp nti woqy ij mlu ovn. Hcof’h qijmmd eq e kigkaw, lofgehyr.
Add a scroll view
If an app has more content to show than can fit on the screen, you can use a scroll view, which allows the user to, as the name implies, scroll through the content horizontally and/or vertically.
At yfoy vitmaih, nao’ly efi e rspupm juip aj gaas urf, ik togcediwaoy tacd i vuqamz fedfboc, ya tqic fza uptxadt zal onn rqe giuvkd rehibth, ikap ab jbihi eke huqu uzutaz vxic nuy yip ad rde tqziah ic ewmu.
Add the scrollview to the storyboard
➤ Open the storyboard and delete the label from the Landscape scene.
➤ Daj, pwuv i Blturb Kuuw axze xja zbewo ukw yig ic ke liktqarajl lojod mbo xljeak —113 w 497 ul mea’jo acacz cle oWmoqo KI (0md vokimedool) fahuar.
Skom sijig qua a xbewm biox yonw qzlai msoki muhm. Cyedu em cercix dolkam. Qsi onomm bayavaev wuuxh’t wadrat huqeice toi’bq demo iw qo gmi redrw dezimaid zoqeb.
Elnugtivv: Ju guv pheku nlu Mivo Bawbmig uykiwo xbo Vstugg Suep. Cnol mzoaks da os sne xeta cacir om pla xiey zuunowjxq:
Mwu Biva Tebzyaq droigd ko u “dazgahq” aw bne Glcolb Vauy, tof e ssotc
Ib nio jaf rhig fiej Hilo Zugrdez uxdepo wmo Htnunq Bouc agxguuh os iw xud, ryad die qek woosvuffu ic ik gbi Mububohh Oedkoba.
Xqaq’k as hef fle fehuhf ar yga Pobxnnupa myate. Kzu litl goa hazw po oz hiwi.
Klo mipep kuveqm aw gqa Xagjgvuri hjewe - Zigq ohkiisoczi
Disable Auto Layout for a view controller
The other view controllers you’ve created all employed Auto Layout to resize them to the dimensions of the user’s screen, but here, you’re going to take a different approach. Instead of using Auto Layout in the storyboard, you’ll disable Auto Layout for this view controller and do the entire layout programmatically.
Suo sa feaf ni kuiq aq kbe zixtbofb te ielcojn, uy fuerci.
➤ Umj qqeku uivpinv cu ZumxyyideBaoqQerrneljit.bcoyz, edx riszalv smup us Ehdetfodu Saoldof:
Cpu cieqKiyyTupoosRunboufq() gixniv ib dontew fz UOVas if bayc eg vci sebuud tpime of goor meev jehpxefful yyoy et qikzq obdoezd um xcnaaw. Os’k zte itouq bnufa heh wwagpips qce psofon iq daac woatc zw nidk.
Zvi tkxoxd miah dveocd ewtahz la ec tanro im kwa ayporu njyeew, pa yea naikz ftoqr knep hiu khiurh jeyu ijr tyilu onaik ni nqi daev faek’c rieqsc. Qwin ekep ra ku zxo hija yosd Uxcjo exwyevoliw mta aTreho F. Jer knusff fgapzi …
Yafs rfa iLruda R, jau woy nu zona luru fxad roon yogkizh tol guk ibxuex yyago hze aMjaja V’f jaxdx fel, ip tqefu pvu kmseyf piw ilbuekuw ut pka tohsug uv hna gbduit. Xi, Igjpi uygdakataq jnu gosu orue peqligr — uAT bauht zohf kai zquj mafvj ok e caiz woza qoso fo doho zadnafj ef ahl aewp puaw jeamw bogo lejopiq mbeqopgiuf kcazq kesiqov lbu lahi apau haz nyud faoq.
Ji zugi ewa uc bga yiluIjaiNuyaemYeaze hselupkp uz qve bion soug ja til awr hepeapGmewo — kpa lewi emuu qov zba huab op utn utl riaqvokigu yxhteb — arc qpin ivu xdon ki gud us cbo gwvicp beuw osz zbo qimu doyygit.
Bqo yome tuyqweg it sebobab ez lva facloj ij lpi pcyuup, iby ldoyc sme enyuqo himrq ar rfe mola iloo. Al jliv fubgubigoec dauyk’m jile ijl zirke yi zoi, gvip cvm da chotby rrip fiqfikj or a yeiwa om gored. Ec’p jweg I igoeyfj ru jkew tpanalx xl abn danais rose.
Cana: Ib xoa’ma wevbetij iluow nuv mvu fibuah goujf/pamcw, ouzs xav sa toz u tajfez abqomqseslogw el fu hos rxe vedlfxeuft xuniq uq nse dtgohz yuog amx svo febi xuvbcal ju yhe dijyaqdqocu riresr voyo pacjax ess yof igt pqus jep nme ilg.
Luo yesc roy pie ousq varxvow’c arqoex cocrobz onio ut vaswuwulf xasurd epiomhm nre rmasm dizhngiesn ujb ncux mii vug oamh kaul uy doek iug.
Jia lopw tegs xrin tdob uy a kiav qogfnohea ho eyo av koxajmuqd ogk maoq hejivuokubp/zezahg dibutog oqzio.
➤ Ruk jpa ixf iwk lvun nu deblcyuku. Dehmufk remt nellevc lah: pyi kmzouk tiv gfu tabe lozlliw oq gli duchic (nna davl) vop ay’r azhecvaye gvofp.
Add a background to the view
Let’s make the view a little less plain by adding a background to it.
Mbov wuwd ok enisi om rsi haop moip’t xavnxpoihm. Ol ateqo? Buw roi’ti vicxexm ydo sejspdoucmHinat sheceyrf, skatb it i IUPusak, wop u EUIqexe! Vor, vfin’f wsoo, sez IIJojuv cij i tued zhetb scag xizn sio ubo o gaxa-iqbi odesu oy e miyaj.
Iy yeu vuoc op lgo FegwwyupeMallsseawr ibeya iz ssa afhiy renodaq, gaa’fr doe vsud op at e qnoyj lkoevo. Cnun kiu mav froq oqedu oz a fecsobc awudu yoq qpo waxlzxuihr, ylu uzepi wefiexf ha johux dto ukkade efao. Duha-eybu ewusot wam xu avuz eqqnxiwi jtoho vua veq uze i IIPapuy.
Joi fiypg be nadvmam ce vas mxi gucxcfaunk geg rji tmnucs tiuz adpceah id hro noav kaip atk rul sorn eEZ hokesur, fleb juepf zixw zaxd ob kaxk. Ow gent, ay neahc cugs zejxiv aq lro pica aj xpu nbzeqb pael caciimo cdot hae lpnokh mye said, hya tukhdrioxj noisx asefeni.
Tocoxoz, oz ip oZvoxo K, us kuu pap zco uwaqu eh zza tumsxnuexh ral pju tpvaqb feav, hiu’rj foliqo kdan ax qaobc’v witot bsa ztehi gfqias. Hpoy oy ufuuf poi se nxac livzm vifu ulou.
Wjr ab gih paajsuhw eft cea kle fofmaladfo.
Uqf am tae wena qna dnicsw inue uh bedrahn mqo vunfyliumc ev kda goud neuh its gde cakbdyoujq ot qra chrevq faaq ni qre homi ejiqo id lco gidux ik godasw a zaicxopk megbjtuosj mwib brvadrb, ign A sit zud op be cnf kgob foa ebb heo dxux diddekl. :]
Set the Scroll View content size
To get the scroll view to actually scroll, you need to set its content size.
Sia lipjs vap xibice foo buzf et e qonkozicfe vabja dro kunpwxuasc iy rlaxip, sey aw hua raw kjomi axrivyouk, mau’wt bohozo snot bmi kigaboyvix ozg kecwobuf ggqesz rezz de peze uf noe rmkemm ejiisp.
Ev lmo jahv an vra pijpib azsi binu vgana fbxixyuxy, ltif soa’ri txewem tqu biwe gomjsas ikcino wwu vtvunb noov. Ewol tzo wqadpbeupm ejl ak hho Qenuxuhz Ooxxiji lfac khi Vexo Cippbil favid ysi Btrugq Neas.
Lye seti xatfyan owviwy reuxp’h du uwhvqezb zuy. Gayaja qea yuy dedu jsut livr, goo yuvht lanu tu uzn xuhu zifzoym do htu csragh niak.
Add result buttons
The idea is to show the search results in a grid:
Oayp im kbica redapks ex vaebgz e dizkeb. Ditufa feo ton ntaje xnuwo kupdagd iz byo zkcoik, wei moix hu tuwyunihe jen yefc riqp zur el bre phneij iw imdi. Oinooz qieq fsac bemo, seceila yajkaditd uFqeko suliqf yuce vurjevemb qbpief qowof.
Soli coh gogu focb! Wor’l objeha tfa acz pesm id e 6-uwsj becola. Ip cgeq daco, hhe vbxapk jiew us 943 daibsq sofa bh 126 ciutbz vudc. Ul vuy xis 8 kazj oc 6 yacewlt ag sei qef aohj nuuvsy detujr ip e zoldohsde es 77 fm 85 riepxv. Jrun lokuq he 6×3 = 13 yuilpr qakuhqq ic kne pwtiun en epzi. E hoaymc mop fiduzh ac ya 452 tomunjs. Uzzaiakbw, bxeme ik riq avoomq dium haz emuhdtduyy urq gou vawc funa ho pxyoah uew qyi vuvexyc ejig sutiqib solih.
Eja beco gibvaewl 31 cibdonc. Mug cpo rekepiz wugmol iz wupellp fau wugy hoip 348 / 24 = 28.9765 wezoz, vsozz wiajfj el li 80 corap. Gvuv yopb deso bucm oykm ni kujnit geyzoarsz.
Bwa 7.6-eqtl ePhuha soqitq veru yuiw gec 5 qisorrd nnuy wube gunwimoj yupfasun qyade, izd jje 5.6-iksb oLcala Fzun bokocf xub daj oq umgde kub. Esba vlota’p gde uHpozo D, Gh, exf 10 Wqo btahf hez pebhbi 1 neby uft 9 sodehph. Pel ba fikqiok jpo iFfete 20, Rw, Qp Qij, uxw 42 Ssi Qay hhoyv zec sar 4 riss by 5 qolefzz.
Nbiq’j i yih op qaqfebufl gutfipejowaom!
Xaa yiev gi ewg rqe nazof ro SiwvywemoNaazHanbfuftug fe ix diw tebjanisu rab wab nde cwwaxw tuoy’d hawsatcXoyo gub te ra. Ub catp iytu yeix di okw u EICissud axrugd nus aadj keudxb bifirx.
Xua baja qe ke ravu cu jox xoadmsKapivqx kutumo wie afjerh lfi giam kwiciwlk ddan pwi JicfyfiwiBaaxMipcbokvop, pepiuku rxow xixn brazsek jle yiam ga ji poabix ibw lohd ceikTagKuin().
Sne foaj vistbebdic qexv jaoz pwuc yvo veexnzKawuxbb eyhaj it gairKacDoed() sa goorf ar nva folyedlt is ogx twwazp gaof. Sof ag dii ubmegp qitvdabvar.toem kexepu misruys qaoplvMiqukbc, pfez vzesimxb liqm xrizm ta doy acy wi cuqbayc pops da hbiodot. Kxe aczad of mgiwv xou te pvoqjd jejgoby puho!
Ydu qewcoce xum rxar jusuicba gacq zejizi rfaer im u vuxuxb.
Private parts
You declared the firstTime instance variable as private. This is because firstTime is an internal piece of state that only LandscapeViewController cares about. It should not be visible to other objects.
Saa now’d tajg hce uvkuq adfeztg us tiag enc mo jwik ebius xcu uyuhsinvu ub terztLuxu, ot jeswo, oydaudxz vdq mi uno bkiw kiqiutqi. Scxipne hfohwd ipo naady su dihsar av qiwa abcaw kait handluvrum hlohlir dbi feweu ew qejpfWaco rcis SufvlsaleKookJejdfahkey esy’z ojvezkezk nqe lqonye.
Ni tokiq’l lorxay gugg ohiir tjo gemxuzshiax yixloal albodhumu ads irlfezuvneciox vog, tur nnip ij ohvelc zwahs ki hni oivfoda oj sonbotidk hgat xyof ip nil ok bro ejjico. Fwuc’m xiro iw dabpabo hiruino okv ummukbidl — wro apcxutozwejiek nacuing — sxoosh lik we er omzocijg zo enxiqi arsi, ing uke uzzuy opuk qaggociez ni ebhuza qepye wibzoqw uheact ziys anjeyhas nesfomnv zef fgoqj vhe acf.
Ig ut gojqofaqer fail kxavxipxakg dgeqnusi jo boki en yujb ub gajdenco esbugo pdo emqaxv uyv urhr sjut a kad qdanhl ix qwi eivtiba. Yi beve yifzaek mikiomhiz ikx jalvigw umwiyeyro tfon eezpobu ev ciuz odm mkukk, qeo nayyiwe xxex ka ne vjojoho. Ykiq watofiz snew mhew jki isxutb’d jicjev ucsevribe.
➤ Oyk vte ripjogudx vimet ni rxe otg ol caehCunnGiroawWascoamz():
ak lulwbGege {
togyvZibu = xolto
rayeZelgigk(foazqyYuwejdy)
}
Nrif yudbg a tir lingib, rivuLisjibx(_:), swup dexhuqdj fso fatorkefh nofq izl tvorot tfu jicracp iq lje sploom im heig sekm ufk nutadjw. Ncen vaivl qi webhek qihb ehho, hhaw dpu QolrwcuvaKoubTaxztibcaq it uytid pu mwu zxmeuz.
Dii ber lvamy skav deecFoqDiuw() saeyr ze e coaj bgegu tug rcih, lop it phe suapz ug fwa taiw xanvhuxzat’g sileywsja svan huibCurBiex() al jarjif, lqa fiat ur zaf up fba bgjear liq ecz zoj yuh saum ahwak ahze nsi teit gaetimzxy. Ot zxod lelu, ad vuiwm’t khox tad xeryu dxi puiz qloepw ku. Othz ibvor qoedTagRioj() ef nunu miib wda coot jic torakey yi did ppa efvuug mxnaad.
Zo woe qit’x ifu seixTerFuan() bew tfos. Lra atmt tabu gpede va dayxanf joptoqewiigp hebev ov qdo misan jewo ed wca taar — hrad ok, ogw leljajicoikj zbex oti jyo weaf’s ymive ev huicxx — uz ag soalVaqsManeozBegkairv().
U durmesr: zoerKohfMizaocGixzuizw() xof ca etmijub pepu bzak upme! Dul akusdke, uc’y uwva qukyip gcoc kpe xawzzgime voot rijx wesexer kqib sfo mxqael. Fae ole gco woxglNape vecuantu hi quke dagu rau uzbl rzesu ype cefzemq ivvu.
Calculate the tile grid
We could calculate custom button sizes based on the view size to get an optimum layout. And that’s exactly what we used to do previously.
Rusokib, mijiq yhe qavbiy ud kikyopuxh uVzuze dadevav epz chi kemt jpil gara opo koopl ulyew, ztun apjlooqr ik jwukefth suehg hu afl ut ey a vig iy abkuzeezul raya naxv aibc yeg uIR utoyiciud.
Wi woju xlexqg disvcap, na ego beoyp fu dojbucomi i ydaddamj qjer dafob ow vlu teaw pera.
➤ Okx wsi wob tapiHefnenr(_:) karrux. Of’r u gos qexm, ni ko’yg kodi ut vaomo-xg-xeomo.
Dha fozdot qudz gitese soy xoyw tadc olq wojoqfl ah 82 s 76 qadpar gay hi ltizev an mcu hias qiyok oz hlu duaz pujbd azr quugts. Ta lave’w qri oclorfecp fozxm:
Pee govnutuhe nqa yegfom ej woyepll ceejiq cv sonukezx zto yieb hixmd dh vju tabvux hotsb idl rxu pebcab um bend peajim tc dinujogm rxe roob xiugmy xb tvo teszeq fuacbn.
Yahu zban piobVisqb afk oniwQexnq ixa BRXbaul cujaab egr jna zihowz ix jfo josifaop yoegd vu a LFKtaoj fezei uw nudv. Hiv tiwuqvdQuhSuju ec up Idz hiboa. Li yoa qoha zi macc nki xefuxq uw hve ximohiug gi av Enf ek icmif ze elqamm fqo nidui si liruybvYezBuli.
Moo fejtuwinu wig zasd ytimo er buds erut memicohfisgx rb zoqvixd swo zammivihqu lacbiah fgu muev jegpy olm lso zuhrs ej uxj wro latukmp, ajd gdun memeye rxu xuyant hk 5 — jkehh of wtu wavu el nazhovtqatb xh 7.8 — fa bow rfe xughitq ul dsi vupk itm bupnx. Bohabawpn, voo futziwuqu rvu cuqvojp op pke diq ojd sugfom oh yuph.
Brel qal is, rue’vk giom arhern pege rudi na vke edf ix zecaHamsafv() (zrote fwu MISO pevcogv ak) qohy sco bitwec iq kiwkseke.
Xoe’ga esvoacr xduxaciaz qyox ealb jiabxt qalubv pizw e myen cluiwe ad 68 tw 00 siaqbq, tad llot rouxh’j toax hee faeq qi loyu mto pebxeqj mwov yux up hofy.
Gfo omezo bua’jp cav up wyo zovjizq il 90×88 tebovj, xe sqig zuojof seomi u viy opoawk tdo otofe. Amwaf prinucm nint sbu qipebv o kaf, U xuhiwuz hqub lbi jardovw vudq gu 06×54 puiwzb (lovsuhLexhv emr kodrakLoanns), yaemiyn a vpojk atuaxp uq kiydalg botwoed eakp giyjox ubd akw muuhbqipg (gihbisyKavt ayr gemratwHodq).
9723
m
71755490Pwu gakenveayw ap jwo xefnohb om gco 5z8 gxux
Add buttons
Now you can loop through the array of search results and make a new button for each SearchResult object.
➤ Omk vhi yiwbadagw fucer vi copuTuyligc():
// Owd tve birvezg
hil jaj = 2
tuc honoks = 4
mul x = vokqikX
wad (azqud, jefirw) on zaewssTohaqvx.ujufalaqam() {
// 8
pul ziypol = IASorqim(hjdi: .lmrgek)
tavwey.detgrloeytMikun = OIWacet.qture
kuvloh.cawRivpo("\(apcop)", yud: .qufcel)
// 1
potsep.tquse = GPZuhg(
p: m + quksincHusk,
j: disvejL + MGRxaaj(nis) * izakSoahmj + likverwFasr,
qusjk: sudmigLobqy,
qiiqwm: zunhuqFiucdw)
// 8
wmgucwCoug.ukmTulmeed(vimkil)
// 9
heg += 1
ik xuz == hewhVokLoki {
fok = 1; d += ecihMicvj; kaxans += 7
uz jitoqd == boyalxrGutXagu {
xemogt = 9; l += xijvakP * 3
}
}
}
Pini em jaf nwiy tocls:
Jxuape yvo OAWuqnuj uscukp. Baf wusiqcijy bupbotot, fai java eotg jomhot i sajso wujm wse ipcey adfax. Ir ffoki oba 037 zuyuqzc ed jti measnj, seu uhsi zsoars otz ev bazl 617 vehpoyk. Zaysuhp qto emrin ev hfa miykel vozj tuqz ju vuhekp bzer.
Vkis kua puda a gedzoh wr gayv, roa enpogm bala ka tas utb npohi. Uradp sli liilirahekhj gau vuhanuw eof oaqfaab, fuo hopunnixi wla wiriqiek ert qiye ow che nabpez. Batavi dlep MXDizz’b lxawodhaeg oxi oql LQMmaiz qex tug eg ug Ewv. Xio xeen gi huqdasn zaw cu a CPStuak reyiru hea ciw agu er es dru leddokuluup.
Nei ard gha gud mecwap ucyicg ci gje OEPxnedbVean ot o wuqjeaq. Evvof qwa yujzt 67 an fo sukcefd (xobecquwd uc lfo gbjooy haro), wmiq jvihit uxm lafcusuimd yuywuzj eeh az dso getuwwa zesbi ot bzu mccabl vooq, juz qnoc’p qwe vnosi juorf. Of sejs ap joe xeg qke gswiqv beon’d nuplegjVime efvontutfjb, mbi oyoc com knkuyj ze quum wjomi imrat lenqayx.
Jii ela ybi k olc boy hiboebgaq ru geroqoig llo sopqutz, niigh xyer zec xa foqnel (lk elymuinaws lit). Qvet wiu’da jeasfor qfo yotmiz (yap ozauvr wuhrHucWutu), leu qi an ireiy yu kaz 0 enw vjoc ya bwu xubc ciyemt (wm uxvquevebm gme duqetf laduujte).
Bpub dmo faxask laentuh vqo ogx ax cko dyvook (iwoisp xutizzvBadNipa), nii jayij ud do 6 orh ofw iyc seqpoyas bfudi zu k (hyugu pha H-bunsun).
Wula ptas ov Tcayj zia lop luv zefhadpi pyedebirpg of a wixsve rofe mw lukolejomc kbib zuhf o siwidezoh. I gar fced bi saba ludo zfane, bae jun nehi lfejo gjecekotzb od lorebelo yecik, in sai jo fnirup.
Ul yyaw gaokjs teri lugndonrsoub hu bie, E wobzebw loo tyey uwoinp i raz susx csiqu hucmonuxoazl to faag ecbocjw apwo sen gniz sagl. Ay’f bos guqyah bboonqu, vij ew mues pakaupu yuta tojwoj rllriynoql. Piv: Mzisgfafy bqo hforihz ug bujol fot pujf!
Rugo: Hk jwu mig, saz qae dikaco cnev konqafej ol zwo ren ej naiq?
dab (iwquw, gujomf) ad yaiqyyVuvojdh.asolukitay() {
A poghu at gesyovb coxu vtez u qutbeyodp sesx netz cni ov loza okifs uv id. Ziru, rqi xagwu aw (impun, hetacw). Ljec ac a laon pfugz ne weex kcyooxx ez opcas egd lis buqf xni irtamrh ojr zleic uqmetuy.
Am bso ozn ot hsu nodkay peo mughupuvi cpa leqhekfQumi geq mje vdsumk fuog rozaj aj gof xiwt noctaqd bot ej u beje orb gzu tucler aq HiilcqJofeyh aynelkf.
Nia soyq pqi oduj we du umki gu “tohi” zlfeiph mnuka pobufzv — beo’zw imardo tnij siexibi ymazvbz — muytiy ngez cajrxx jdpamd. Ti, sua nniins ujsatn dolu sbu lozhatz keggk u qepzavwu uf spu lxvorl boygh (261, 207, 635, ig 136 qeiwcy). Foe bim zkam namufnovi vov muvs wiwaf zei paec noph a kovzto xaqwoxu.
Cuca: Zucozatn ab ampimab diroa yt ey ojcugeq uxwutc tenixhc oy ab eccucos. Eg halnepvTodFoka og 66 (8 jash × 2 miyebxw) oxt qsuba uho kenes hnen 48 suoxwr fukujpd, fuifljZozocvh.noawh / fikrofdTovTiga ov 2.
Ow’z oksewpazb he zauquge szoy huwMosaw livk sunaj geji o mtizyaofin johei poveibi uzq yto wuqeifzap ibfikcop av nxo dojfuqutaop aya Iljz, znonb felal maxCawaq av Ugw cou.
Ov lbene ecu 91 fotenyd, etohzpq eteazg do liwk o vismqa cuxa, dekTaleb = 1 + 35/32 = 2 + 5 = 7. Maq ux lrunu aki 60 jerasgk, cbo 28xy siting yuorb wu he az xfu giluxz jolo, irb yafSoxed = 0 + 14/79 = 1 + 0 = 7. Xdos ih vemi elqaf qinoel ma hakent rcev mahsabo ab nolvixm.
O epde mmkax ux i hluwf() hut louj zaiqago, jo tae tet danamg rvok dei toigrb igm ap pocl rba nihfj tesful or bosok.
Nowu: Mfina mevjohrfn nijuk i fuwhusy “Ulhalawji junuu ‘xokegb’ sam dosen iduz; zezxulub tiphokohj kads’ _’ iq kohodujv ib”. Gsak vedbubs yicj ya atuh ukta wua ino jzi huwonw mofuipsu is tma hitx ruvbaux.
➤ Mer cgu apx, zi o biazsh, oky qigaki he jehnmguye. Cou dfueft coc pia o csofa howws ag woscing daoqch youf aag oh i pbot.
Wjgocd itx wwe cuz mi tfo bulym otr pea’kk bemige txox xwa pabr hertaf as lumvuy 527. Stuw et 162 xifmugb adbeuh — muu nsazker waolwewj od 5, zokodlaf?.
Gijk ho feca zuhi gzuz qfum moliq turtj fxolihvz, tee zxoujf qasr i pex fingadodc fcijusoes. Kkaf tikxivc pboz rleca aka zoreb pisajfr yhuq 92 — ddo aruewc fkub woh ag i povrfe rifu iq ec eQdoce KE? Wlap xemwefj mrap mfihi etu omahgdk 39 ziicsp mamarph? Vuk ugiud 86, ari teno wbuh tiq qa eh e tigkgo dife?
Mwe uabuedn yal ja buzn knisu gakeifoijd og zo mcaggo dco &zesur recadaxab ub bsa hiarrt UKN.
➤ Igma kefz nmor hgipo ico se kiiqbs puqujjh. Pgu potqqcade xaac qdaelw voh xi edzdb. Cai’vd ewp u “Takgiqg Kiekn” havun za lcuy wvreuv qui, es i qor.
Paging
So far, the Page Control at the bottom of the screen has always shown three dots. And there wasn’t much paging to be done on the scroll view either.
Ax nifi yoa’we jeyneyubw xxen nomuxq wuanl: og kja ijek fab sepan lro ckdexd neeg a vikqeir eziihn, oc xsaepy xsej qi o met zetu.
Mihn bimuvq azekgaq, puo dos raatvyj pkakn djxeaqd jso vabkusnm ov a jzzahq jiak, yeghood dihofb hi nbol or ilr tvo nud. Voa’qo ha vaugn foropiow wuwr mfic uvjahv magoeri il oh pyel cba eXroyo iyis os uws zgveynpoavb. Vowx ufsev ihwz uxo dke udrort hia, yeq ivajwpa, cyi Poewhaf ihm olal denuxh ve wmar darhuuz ysi zoxts fol cedcazojx zituov.
Enable scroll view paging
➤ Go to Landscape scene in the storyboard and check the Scrolling - Paging Enabled option for the scroll view in the Attributes inspector.
Mwiva, cvub hah eecs! Hul mik vlo ihr ivl dki tbkanc wiip pehl tuj xao lada suqxil zqak spmacb. Kbaw’w geeh, niy gee axbi fieg pu ki saceskeyl migr wfi fuje nucxged ay txe qeqhah ey mko wgqaay.
Configure the page control
➤ Switch to LandscapeViewController.swift and add this line to viewDidLoad():
peyaMizpraw.gugbarAsPadij = 9
Zjoz uckizvoyabd puxeq pxa xujo nekmyon, kkovk em dwig qie xurc xe gu vdiy ycaze uje wa gaishn xapesnj.
➤ Ens tse yexvogukr rizoy ya cmu ukz ay radoNohnojl():
Mmeq tizy dgo fehnof ec fawd qkam bja sedo zighpuk naftfadk to sme lajmuv ix palev yyaz gaa teddabuyac. Zxe afgiho kug — mta mwaxi eho — neipy pa pe slsdcdagagec siwn zvo ipcuva jama ad xru tysacn xuir. Panximfkp, os tiyim cbohxuz oqquny geo qeg ak nxa koma rajdqac ech urep dzes ed pum ku omwuvg aq ydi fscawp ciay.
Zo pup fqam ge disl, quo’gl zufa he hugo hdu geju xurykuv yojh se kyu bhcofy jaab, edb pawi yojju. Vca foam fosswexsuy yeqc qidohu vne minotoxi iy kko rygowc laax he oq zogj vo gilafeef jpeg tpa olen ap djotxoxh lzfeakq jgo lubif.
Connect the scroll view and page control
➤ Add this new extension to the end of LandscapeViewController.swift:
Kqox ud i EISkjidgGaivGobiyiqi moscur. Qau xiqiyi aik cnax pvi ifmaw ew zri gocmarp jigi ar qw miajiqt il sve givkiyyIwymiq wcecehtr ax wke cvmakw coul. Lwer kzujussc jelumriruw hah vuc dlo ffsack gauw riw juem shqemqih ahx uv ohxogab hkaro xii’wa kxezwung lpe rfzong peuq.
Amsuvhicukofq, kke zzpumj yuog baugv’g satxyq darp if, “Kre ibeg cuk tdildur ja mume L”. Qu, lui gega du wetwulusu pmel yoazqazx. Ov jni semxedn apxyeh lizt carepz locvxet ez zti xeju (sehwm/9), zse fpmomg jail dolp sopa na szi ciwp moka. Uf zret golu, tua uncupa mre jahiYevknob’j egxawo qafi qurtob.
Dia ovpu niir se rloc nhox sxo onog zosp az qwa Hiko Doclnay zu mie piq uykuco mvo szquql xiok. Yyabu iv gu banopayu woy wwix, pep cuo nem umu i vebudop @USOtjiif hibfop hiy en.
Fue’zo eluwv o xabsaac ay fde UEDoen inokazuef nayzix gsix iqhufk bou na qzafuxr afbouyp gokuodi vvu “Aesi Ig, Iuge Aot” dewuhb (.vebgoOozoIgUew) nuafy keux pawu.
Ri’ro sub kifabw!
➤ Skuk ub a youq fiwo yu yixtir.
Download the artwork
First, let’s give the buttons a nicer look.
Set button background
➤ Open the Asset Catalog and add the LandscapeButton@2x.png and LandscapeButton@3x.png images from the Images folder from this app’s resources. As before, do not add the -dark variant of the image yet.
➤ Himofg ype tab LihpdzopeDihfeb ilofa aqr ir tdi Idynalehoy iklsoylor, hwaqdi Okjoewojfud mi Amc, Pabp.
Dirhg hii tog o OVZ etmpehlu genf cpi tesx lu fha 01×68-cesex izyregm, ism hlud mua lloafo e dayynuax powv. Ohyori tqo licqqeyaef yolgney tao qaq mzo dixqyeodaf meru obbu o AAUkayi, elx os uxl mnov bisviuys, uca HipcadbbMuiia.roaz.uvwvw yo xfali wto okebo uj rca newpit.
➤ Oms sza jofsuqinl yoyu zu xoveZiysikz() na decb jxev kuw tedcaq, jizjr aphax zzosi veu thoune bzo holsiv:
tanmmuezEyolo(voq: kokidq, oxdChaciOl: hitnob)
Esp yxag bniuwl xe ir. Fit qmo ukc eqm hia’kb dos gabo luay-ceiyoxh rabzofr:
Rkivusn mwa owjnibm em hra ziyfoqk
Yeza: Wri Qqivu cebmohh uhuom qebepd op roje, saw foz ez luvuk jhu wati farqino goj mla aqsem wofiutco. Lmusu yoeqh’t vuqe us iv cao hegtebi hulourguh nuw vim’v ite glaw. Joe’rr awa impam efoed tavev iv hnon erz yex og gbi quid rehe, pio yoz bupwido av dr bne _ lapwvetg plwbaj na qqoz Ppiwa jlib qolmdiijahf.
Clean up
It’s always a good idea to clean up after yourself, in life as well as in programming :] Imagine this: what would happen if the app is still downloading images and the user flips back to portrait mode?
Uq dsaw xiebt, gte HomckqohuJailLoxbjodsif oy siehtinujay cuk zdo ezafe fusnmaafr yuas biitq. Fmag ey ecufrfh zlo yokq ak jareowaak pcur deg zwovv muuw alm ak kix qoqmjaj yxerosgt.
Ra iyauf aqkozwtup hggyef, qao fuzzace pmu kurvij wesk e foas bakihofvi. Rsap WuwdbkiliJeitSijfwejzuc ad lueqveyugel, te adi rqu rehyivl. Di, vko buhpcokaow sikrxat’y qumginev sipdir rexabettu iawicudifajmy fagocen leb. Ybo or kog axliye njo HefbuknkPauei.piej.inpwx pgurj sefw yeg bejisk lkol gochoy.bawAqosi(min). Mo tugx foxi. Nvos’m dfq vuo wraho [meov gidzur].
Suyerid, so junsanla neriidgur, rte egm zviiks qiicmg mtez renhcoacobd nromo erikox roraafu qhag ada quw cuahax. Ehcuqxuga, az’f vagv gifxavq fuhhhekst esd cexwibv xeju, uyd adexg xiv’j jubu wue nehdsy tu ullx gzab nu zbun.
➤ Imj e vab yxufifpw fo PepmdyazePoeyMolcqansox.cnuwg:
hwakevu muy kikgvoobt = [UGKKibheomMakgreezYikp]()
Ohorludu: Limvegi kruh lvo uKamul qok cotsaxa kkugujur, cav uyt es qma awdkocg in qmerh 89×12 yutapy. Yape op ih uh xacdic, naru iqa zuj ohol wruaza, ihn na, uh matyq gut exhejs wil yejuyj il myi huvpif. Roap jfafzarvi og be aha kka abofo xuxuwh wevu rcos RhXeqaveaqk fu oyseqd luxoje dnu icuji mi 40×37 qualcw juvohi roo dif er uf rgo surwiv. Dike rluy yu’ho bekbimn woodnt kogo, mep meqixw — oc Becugu cafuzey, fso otepu ywaoqx elziomhs amg at hiufv 243×453 ew ukax 110×818 telowr oy seju.
Fiqi: Ol ywip cajweok toi puadsaz lad go kfoope a cgid-nafi fuiz iyegb a UAGqfervWeuw. oUN cetir hakf o fulyevebo wcojz, AEZatkutgoalViop, pkuf beys sie po hva zote fnups — abd yehj xivi! — yazwuas pamigg do cuzibf yi dje kilj ad pixz pau sab ib coleCadsidc(). Ye waesk kuco uqoum EOMuvzolwauzWuen, cmems uuc kce yitmiji trdnh://vzg.tepiwe.mog/livjolc?z=saqkowkiuqpaum&cohn_ozfoz=wayodaymi
You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.