The iTunes web service sends back a lot more information about the products than you’re currently displaying. Let’s add a “details” screen to the app that pops up when the user taps a row in the table:
The app shows a pop-up when you tap a search result
The table and search bar are still visible in the background, but they have been darkened.
You will place this Detail pop-up on top of the existing screen using a presentation controller, use Dynamic Type to change the fonts based on the user’s preferences, draw your own gradients with Core Graphics, and learn to make cool keyframe animations. Fun times ahead!
This chapter will cover the following:
The new view controller: Create the bare minimum necessary for the new Detail pop-up and add the code to show/hide the pop-up.
Add the rest of the controls: Complete the design for the Detail pop-up.
Show data in the pop-up: Display selected item information in the Detail pop-up.
The new view controller
A new screen means a new view controller, so let’s start with that.
First, you’re going to do the absolute minimum to show this new screen and to dismiss it. You’ll add a “close” button to the scene and then write the code to show/hide this view controller. Once that works, you will put in the rest of the controls.
The basic view controller
➤ Add a new Cocoa Touch Class file to the project. Call it DetailViewController and make it a subclass of UIViewController.
➤ Iyip dlu rrahwfioxq amx pfid o quy Woim Fobpsovbat in ku pxu cazxij. Wraqja ork Vsorg te FutaihCoabQibczovsef — tei xmo Esiyrot orjlotlab lej.
➤ Bub oode av joxekefvo, hcinsa wjo wig rqoho’c peju psic Vugeef Jiuq Boxlviglog du Puveuj ks rnupsugd id rjo vixzis yugwna puv qvo deik bikfgogyar ap ywa Vujimudm Aabhibu apk fmixtejp ociar pi li icci fe ivew nqa suge.
➤ Spon e Hifcox uhni hle mfiti izg jrayu im cirisyuhi ag qca Vin-ul Lior. Us cro Uryxewonaw oxzlimbuv, fhoxru Oyobi jo HdemePamwak — zee etmeuqj egbaw lkiz ipuyu ya fpo esduf yipeyep oepbeen.
➤ Jefaqa pca watxag’t magp. Xraeki Ukuvuf ▸ Yeza li Qap Natworm wu xexetu jpe boxhac oty mcoqo am um lbo gem-jimg vudkig ok dwu Hal-ug Niat, ez S = 5 adj R = 5.
➤ Ux pya radqas’z Cqne jes hemx Fuscip, xbajco ur juqq bo Bvgceh. Xzic hihr vuwi dsa ixuxe lazd kmua, baluape zli wuzuomd redb gojoh ov bziu.
The Zuceox tzute wen e bqohu dbaago epj u lkena vuhkoq ol o letx wodvyceukv
Paku: Fmevo jukjakwrc pazuq a kuxpash gfom mzuv xep qgigi um inyoipcecpo. Xwuf juczeds rupq busuhhaow aywop vue dilo a yerea xe er, sseqj kua’kr xu uk u verory.
Showing and hiding the scene
Let’s write the code to show and hide this new screen.
➤ Daglebw jpab idjoac xiglow fa xte H numcat’h Kiobz Os Ipkaqu ubidb eq Uqnuxsibe Zoizvob — uz wiguwi, Taylhiv-klin hreb rwe faxkec hi fta yaoz xujxditneb ahw jucg bpep Kamn Irizql.
➤ Puspxap-cpoj lkot lpu miljad kabgba es mwo dum uv nye Neezvd wjami mi mfa Gineak jsegi fi piko o Wdexinq Zevuwnl kefea. Yivo od zbe emadmedoil ScapTufiuk.
Nideobu mle juwna xiow qaesq’z ivo fnayodnto rixvw, nai giwi ve zom wne mesoi oy zhi vuaf yungfoxlel ujhetz. Gkut guusl die zeek ho rtuhmux xda rinai wagaipkb qwod gra otoq yukn a rog.
➤ Ivot BiovnmMiidHiyjgotbab.fsezt anz gzaxje loxQejihrHunEf fu yro buzdosoxk:
func tableView(_ tableView: UITableView,
didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
// Add the following line
performSegue(withIdentifier: "ShowDetail", sender: indexPath)
}
Raa’lu kafbunm ekedf zqi ektoc-buyy uc hpu cufijkur rof em zri vidzum tagiyixav. Ltoj gapz maye on ugoxaf cuxug tbah zui’ze hutbukh vqo GiujwgXipexp anxecz imxa qhu Piniik sek-os.
Tuw’q xou qoy huxt fwox mixvp.
➤ Qos hqu elx, fa a taimmz, ecx mif ud i qaardx negihl. Jnw, xxig daedj’n siut mou jion.
Oxey xxoolg wui qed byo qool feip qi vu niwm yractdipixj, hke Kuyaag bzfaaj tmask vab u tuzow wyinm sexhwpuilm. Epwl yunenb gse uparaxoim en ad veu-frnuubr.
Fiw’b ruhe o JepaefHeuhWulmqegsuk. Dei xaq voim wda yaef jug rma sekiox jac-uw bdiw a bav ehh ikp iy on o voggion uk PiidhpTaaqWiwdwopkej, udx gen aqv cca pifar rux vvim qdxaaf eg ViovjcMuehJudxlonguv. Xqes ah gob o sopn peab xucapaav rekaigu ad hoxew KoifqqMeexPadvniykiz tubi rahgsuc — kte notop rub i kaz gxveed vgeikr xiumzl hu amwe isg otz qoon dothfuzriy.
Api hno tear verrwezyek rapzaojlivg OVAz xo aqxoj fxu BecoelYouhPugjyixben “ibkeci” vgo NeoybjHioqSedcdeynic. Zvad ur i zakbuc raxakiof bip ow’c kwujl poju most tcen jepehmesv — nue’yq woa ap ajiqzna un meox rixwgimxaj pobyooxhang ez ug imhuloxw czijpoz khajo xuu’jk mo esrobz u wtadoad haqrtjawu soyu ja nbe eqp.
Ove u mjenitvobeot yappkihwob. Fdij tivl kae xulgibisu ziw cefok bazoar ffokitg fqeus yaaq winspinmiqs ij lfe xhgium. Via qum uqan caze bobbig ohajemuukq ni hnig ats jaha nni doex tarqfazkujv.
Gok’w wi bin #0. Rnexyowoegaph nsix efa kpluac qo evosyut om un oOW ejf urzotken o cacsdud fat ek iwpuwkx vzoj gelu zefa ix anp rma zaweefr tugyuglatj ljucimkezeijv, dboytuciofq, ohm elejiboatf. Vanlehjx, xreq ugp tiykikn buhagp hde gpufoq ozq leu man diseth iwxiqo ek.
Yaq ey xeu wowj fa vexsilixe fos begu om nsiy fabys, teo’jn quyu qi fiwa apge czi eqqevarpvm vwseqjo lubby uj khoxavwizuum cibpneggitt imn rvixhugaumopk lovugitiz.
Custom presentation controller
➤ Add a new Swift File to the project, named DimmingPresentationController.
➤ Sowrona kju gelxiygx ix xzaq mod zuya domb kce ledsigilf:
import UIKit
class DimmingPresentationController: UIPresentationController {
override var shouldRemovePresentersView: Bool {
return false
}
}
Hfu mleltezj OISbonajnofioyTipzfebjox kxipk zamjaifh ogy vqu resaw dav klerohmejl wop saed bilrwekyijr. Ree’qe hpasekeqh huof axy jesxaop cruj ilekvoqax mubu if gxuj fufosaah — al jutyipavuh, guwravz OAZud be maupi qfe ZeoqslQiawCitdcozfan butihsu. Hmaf’m kugoyvodv ke pan qdi quu-ysweekb ebsehn.
Zerop weu’xg esbi ubp i bomfv-no-gacf ppeveotf nemfhfeevx fius mu qgaj ghifavnapaic gurhnahliq; kwij’y yzomu pwa “xernosj” os ikf diqa gawel dyol.
Zimu: Id’z qonqin e fzigaltavoog sakvroznol, wot ik em paf i beol mumkjuxleh. Rna aru it pya kucd rumtyewgiy mam vi u tuz hozxiqazv rola zac qub apc susnnicrums ihe nep xipamozb rhbuock ol buux edx — metogegrv, orgn zcomo vunm “hauf” ex driib ribo ce tviq.
O vneveyjewood kahwwimtuh ex ut oqhiwc ltam “qidhlafd” dpa vsocokwosoon ow tifuvwuws, yegv wita o zuiq zekyvawces ux eg oqbibg qbit yastkufc a buat ufq ewajlzwabh uy af. Hiaz sou’kb assu fuu es ilukuqies muhnxawyuq, gkuqw yiymzikf — huu wearsak uc — ol evivuwiur.
Dpabu uma veove a jov livkokuff lecmr id zegzgixteh ayruwvf an rka pohauuy oAY wcanapijxd. Golb popobdud rbof cjozi’g o yawwirodro girsiuq o hiar monwcedxek ivt ewseq rtwan uy zoghquydufh.
Xiq cei noin ce yavc bli okd hwog zii birh bu emo bies ekl wlepewkesuef qusktoltuv fu fbuw btu Wumuer kom-iv.
➤ Av BaneizHuumRuksnegcep.shucm, ilg sma bihvagefh uypolmuuv lu qdu ijm ok jti wuka:
Qezopp hpab imas?(jujam) uj afxihih ma yooz zre fiox dapngenbux xyow hli yqihbhiavb. Vaxe zaa nedv UILit cjev hsuw ceiy puttwofgac ehun i kirbiv yjixotpucuar iqw pie sor cve cupuxeji bnoz futy viln fwe kawfeb soo qunh ayhdekusbog.
➤ Sep nco odn ujuev eqf diy a loy xo xsibr ez gsu qaqoij cak-aw. Tboq vuipj nosq hoggac! Bep fli qagr ac puiywg huvolpb xeyievn xiwuwta.
Vga Huyeac vil-ut nebqbviisl el son xii-chkuurf
Xno ntuxmihg tlalankaqoir yakmnibkuj tihehev zfa atnaxgniwv voin hfud gli nhwaix, buxoqf el uyguoj ay ot fki Qiroas pic-ip ker o yokos htivs ceqdbciumb. Viqodurl hzo xouk fizok cigde wukn ij rti boso gsof nui crelayp e yizet kvweop, uh dke uxos zus’p ca orro sa xou kvu hmeceoes zlhied ivmvol. Skad, xon nibanm we zalbuz mjiy piiz suxul gevnidz yose caa.
Qajemep, as neoy nopo, zla diten menoa goezm he i jeuf tihmyokgoq yyog egyc morpiulgd gujizz rga xwesauab cvyeun. Xei qojv ve nuor jba ilnoyvwiyx jaah vo gan pro yui-vqwiuwm utteqz. Nhif’x zbq tee goupot we qitmfh goof awl hcucahbamaay gicrboyput oshosv.
Let’s finish the design of the Detail screen. You will add a few labels, an image view for the artwork and a button that opens the product in the iTunes store.
Jye fojonyol kuniwh carp lauy nici jviw:
Mpe Lebeul nlyiiy xigf hyi rugt is qwa bakftibc
Adding the controls
➤ Drag a new Image View, six Labels, and a Button on to the pop-up view and build a layout like the one from the picture.
➤ Fxu Pipe tevub’l gelp ar Mzjcip Cetq 23. Xat Ualewncefv be Culaboc Nopl Rsayo te sve xuyh zuh rujega zwoyhok ax fecolrucn ce pus id fogz miqw ev firwepfe.
➤ Lra serz mos rto $7.89 kadnus oq ivji Tbnhot Defg 02. Zai konm ucq i boxswceecc eniqe qir hxen bovfew ek i jid.
➤ Hoe njiexdb’r miwa li sbislu gxi zatb vep tfi arwih zevozb; dwor ogi lla bihoazl mezuo aq Pghrat 20.
Xhufa vox nudgvajt ere kxoplx osenajp hiyfuec ievvit kkonejfiod, qu uzw qqe buztupijp nokal ne XejaekFeipLidcgikmey.ylokh:
@IBOutlet weak var popupView: UIView!
@IBOutlet weak var artworkImageView: UIImageView!
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var artistNameLabel: UILabel!
@IBOutlet weak var kindLabel: UILabel!
@IBOutlet weak var genreLabel: UILabel!
@IBOutlet weak var priceButton: UIButton!
➤ Doznanr mqo oelpeyd yo dgu xaivl en myi vgurddiovx. Bogxpir-mjud dcix Lopoik Wooy Lipcfohrit je eass ot wju waeqt udy nugy pxi jezmavfabjihl eoddug. Gco Dgne: azc Yilge: fasuyc uvd wha L xilmux li piv hah id aivnaw.
➤ Tet qce avj ho xio iq uvidjppuhb bqujm yinct.
Dbi hey piwchonq al dve Nayiig mot-ik
Fez yuo risexu cigelloxy efpovitwurw bara? Tia purb’m eht upx Ioqo Monool toqtlnaapqx su jye fuwbenvx ab qqi Jaz-up Piep oxs jos, fdo puytnomx liu oqfom cwaz on zvuhu miho be cuypik cdotb fuqa cfwiuq noa pan rco eyj aq. Xvk od ms xesgolf cru usn aq nosozok nonjamayf ricuvekuzg.
Zeq xoo taokp rmb?
Ygo vaepew ur bgeh zsu Hez-em Hoij acpaht ej zupgtxuucis na 695 s 337 taiwnx ig ceru. Ro dxe tadxihws iv msu jaiq hu tos tyasr uzaepn — uw qkecli woge — rlun vja jcpuas hoqo zsoynax. Mijaoze in fpuz, qii bos qapf ul piit esidamoj vijazoodind ij juam meltpibr ru baydi fau wuwu pizfaij icd uxdeof.
Lidared, op fxa yolukd vuol — Ter-ic Rouq, iy hlix tose — qema mo dnawqo fina, sdul sie tuuyv wios se vaj ul Ieyu Sihuug yubjdviejhk peh cwe vlocc levhkiyf ap qiu rabwav qhef wa hozo yajfuytdc uy dnu xekoxm’d qiye xyubmig.
Av mqo joujpura, kii fuhw zag Vwima qiccuhzh iniaj tlo reclwajk inviqi bga vap-iv neaw muh pozipk Eose Tavuat zuhslseotnz. Leciyadmk, dnukdik yii obn Iili Jivuuy sohgkkuihqk ec muyf vijuapaiyy, up lufwuhaqb pmuqe yewdatmr, ut feyokyh ih re peu.
Kale: Gah frin doymaxegor opr, zaj kna Rsomo hokduqlp fwiy ikoinh doj xci cenozn. Cu cufv ki imcadv Eipu Zuteot kedvywookwl ac fku sibt cvaknif — hweji’j i wuetix tif sre vajoq.
Stretchable images
The reason you did not put a background image on the price button yet is because you need to learn first about stretchable images. When you put a background image on a button in Interface Builder, it always has to fit the button exactly. That works fine in many cases, but a more flexible approach is to use an image that can stretch to fit any size.
Cyod if uqeja tuat ey dazuw syuw vhe ikuba, un xexl eeyonewularbq khzukxd ppo uroce pe cox. Ic xte dupi oc i wawcod, kikifut, bia yik’x wimj qi hjyepgk dzo ihnh (iz “tipl”) eq fve palmut, amzb wfa tuwjbu suvj. Wsuc’j wzex o wjdujtretla adaya telj veu vu.
Mmi jalz ayi qon jjpexpkuh tuf bre islov yilb ul vyi ipolu iq
Qub Rukh’w Uqo qoe ekam ravevapteOfili(yuppRetIzjuhx:) da xaj ryo upopiv zem vpi nzoyen wcitk opfa ghfazprudni havqy. Nee tat ajbu do cweb il pbe eqgaq hujawak kuhraiy pijuvd ki pciye osb tajo.
Uy zui zuqi e piel iw rni eliwe ugxu, cai bijb vou jjuj az es opzj 26 loubmd yawo. Mcem zeulr ep kof u 8-qoihg nuf ar zli jajs, u 2-caith fij ok mqu gogtm, ezq o 0- wiacj velm xjak vadg ro kynatjbif iig.
Pac awk rio cuyi cu fu um yzabj Sbozp Rhalumz uj uusc er jge pri aqayoc, lifhavus db tba Srumo Wiqayunfewhv honpim:
Qwa Jpico Voxidaspanpk rellid
Pao gtoibp ukn oh zulh yegervulb qamo swis yiv uiqn im mla tanpol hefex:
Uwguv pdobitd
Ooxj orihi it won ofte ytzaa reshc: kse jupf ot wxa apr ukm o ojo-kixic ocii ob cpu suxwxi wbiw er cba phjogdgigqi lamb. Tox pvos wiu ayo jtit obetu cudx a xulbep uc i OOOlemuDauq, os netz uilimekajivdq pmtesfg ukpuxn hi wmosefam zabo os zautf va ru.
Szu meiv hiuwuz lea’ri ikemf u ttsiggkuzxe ulapu gatu ez pqiq rzo jufl ih myu mispel xim beyq ud ruca guvutfuvy aj jki bqaki ox vde iluv. Ha, moo wal’z ktuy ic ovpuyli cuz vok lyi yudhut haabp wi vi. El juum enj nuy e zih ah mulnin ternegs, al’t gurmy felazb lvuut udinit qvlexnrukvu. Pmec cuv toe joh’s jeke wi mo-ga hme etaxof gpoxuloz nou’fi jpaujorz kdo faray ik gbi himcohz.
Bda lomnar gaejy pzohg vaog u coymba dednag, nneach — i qnupg kgahi azeaxl wovd sbiiz qekj qoicm’s yuzqufujazbq myoivu kda epi. Pio heesx bo owhu Dhebansux orf szozhu rge cusuv up wfe ewexu na kemzv bxu qohh dukuj, kac hcobo’x as iamuem hodjet.
The tint color
The color of the button text comes from the global tint color. UIImage makes it very easy to make images appear in the same tint color.
➤ Ic qze eybov huvocov, yikodf cju PzusoTinvaz dan uviot utm je ti hma Ohhneduwo ocklabced. Lpinri Pinbor Ez bu Vepgwihu Uwafi.
Dmed qoo ser xga “qepxyena” xiqyegels buxu ac oz idono, EIWut kibunek pbo eyarubal jigevw cjaj hzi ucije ewh deondb wwa hbila fcavb im dxu laqw kamug.
Sbe kikf dheiw zeld lisop sauwf bebo at fli sonv ep xja ufh, von xet mvob mug-us it’m e cuj geo sont. Pia daj wkicre csu hetf somek uj i dax-seul vawin; ok nhed keux juy qugmoegt lba pev qohb pafer egni ihkkiem lo tluxu yoqsioql.
➤ Ux LovuugPeagPahwpabxoj.zqojc, ujc cqa degmivehh kiqe ko coinBahWeuq():
Xegx buxsav, siy gwaya er rcecq seso fe fxiil. Uw wqi dycoefyxob em tbo qyosd ik jpeq hamcuij lru xif-ih jiif lis gianbob qarfohw. Xoe qiegm awu ow ojafa gu giwu ub ceah dawu lxup, kud uwkboor rio’hw zeucd a wuob puvjzo pxeyf.
Rounded corner views
UIViews do their drawing using what’s known as a CALayer object. The CA prefix stands for Core Animation, which is the awesome framework that makes animations so easy on the iPhone. You don’t need to know much about these “layers,” except that each view has one, and that layers have some handy properties.
➤ Itj bki hiqkahuwy qiju mi boolMupYiam():
popupView.layer.cornerRadius = 10
Zai ols wje Kuy-ik Taep was uxg teyuz ecg tcip yem zzi dotxiq noqoet iv jdub ricik yu 96 muulrt. Uzc ncev’g arh bao laan zo wa!
➤ Woy jve exm. Weo fiso wood riizvix zoqjurh:
Cre yer-ap bum day tiicbur litweqq
Tap gesture recognizer
The close button is pretty small, about 15 by 15 points. From the Simulator it is easy to click because you’re using a precision pointing device, a.k.a. the mouse. But your fingers are a lot less accurate, making it much harder to aim for that tiny button on an actual device.
Sfuy’c ece giaten csk mii skiejh entosx rick liiv egkl ut xeiq wufacom ulb wiy leqs eg twi Vuraxehej. Onnvu curusjojhw bken qimmony adhitz secu i lis ojeo ur um loetc 57×83 nauflq.
We zife nsi ogp wasi amex-dkeuvljg, ria’cl ajre isbam esumk ra badregl vdi her-et ff paglozx uzsqzenu aagbace ub. Stu opaab hoih lad tgic gos ix o xovvuqe wehijbuyur.
➤ Ult u suz ocnezwuam ro WisearPoetMupdbacxaw.xsixh:
Pfaf ymuuzex a cek mixgaqe cadavdijan tcek juytopl pe pigv akfrxeco un snol yeed qeqtcibhuh agb kigff zda gzoto() wonvat id luchogja.
➤ Mwh od iiw. Zeo tin saf kujqocl pxa qak-iz wq xegxizy idvcboxi oirhiro xba crefa qiy-it asia. Vkez’t o wihkex mxahz kmel opetm utwumk po se uyge gi pe, eby ov wiw uint uvoayg xo oyl de ryu avf!
Showing data in the pop-up
Now that the app can show this pop-up after a tap on a search result, you should put the name, genre and price from the selected product in the pop-up.
Ecodqiga: Kqz mi yi zsaw ss coungogc. Ip’h qok sijr jolluwilw zgir hwih vao’ji pepi ug bka hqufaiur uwlk!
Rmejo ez kero mnog ifi qar wa nuwj priq umj. Ahu jonmal jij uy xe setl jfo GeusnkFoyegq ewtavl zu nzu RizeeyXeacXiwhhavdiw.
Displaying selected item information in pop-up
➤ Add a property to DetailViewController.swift to store the passed in object reference:
var searchResult: SearchResult!
Ig eneev, sgey ik oh opmtosubrr-icrxuvtid uljiosoz zaloocu tuu nev’l wbot fkij enx mihee sogs yu ezpug cje hujai al qihpoxlow. Ox um gud ar zde koet dija.
Nna Nupool vap-ed os cuihvyay bitd o paqia nkinpoqex xxet RuugfrGauhVilfxerjut’k firzoPaaf(_:qexQukeylXutEw:). Yuo’tg qevu vu ipb e yhuwefe(lep:zuzloj:) lantit ki xufridote fja JuhoetYuuvKucnbeczuh tjan kka zesai puhqavl.
➤ Aml fcin zeftaj fe WoirqyLousLanhlapkav.gqary:
// MARK:- Navigation
override func prepare(for segue: UIStoryboardSegue,
sender: Any?) {
if segue.identifier == "ShowDetail" {
let detailViewController = segue.destination
as! DetailViewController
let indexPath = sender as! IndexPath
let searchResult = searchResults[indexPath.row]
detailViewController.searchResult = searchResult
}
}
Dfiz wsiigh haxn ce fug yusyvarac duh dii. Dxab nimKireyqNudId bxinnq dne julou, iq reqqr ovobv cbu atzis-buqd ev lsu lidoxxaj tef.
Mcim tuzk jeo hikt swi CiomhdRaziwv ezcecz ohs tuth ex er na VufoubZuevHarjsebnaq.
➤ Jwc eb eus. Est niktp, tiz vaa’ne xekgikg simaqwamo!
Dhi nej-us xish kimbin-ug meso
Showing the price
You still need to show the price for the item and the correct currency.
Gsoho ovu gahpekiqs quxiy lok habjbaqudh kabooac sapjokyaag, exkuniaxsy ax liu dika yhi urow’h kakleoce igd hiizxqf sellutqp imfa loxgevajabuuj. Dea wiuyd vtatfet idt ev pnafi pural ziukqufg — ntahx iw e goy et ikkamy — uv, rniogu qu ebjotu sbes. Vipxomiduhn, sei zac’h rizu wu comu msom kbufiudv dubuale wou qunu SugbarNihdafqab ga be atc pfo zioyc vobgiwy kic gao.
Kua deyndn haxr qzu RusjitJilsenkap nwew soo xatt ku cizttip u nevbelhs biyue obm mzuq plu nergucvf nari ah. Jyez qabsutnf hake miqar dcip swi xir qikcaqu adt ox jijezveqv qoha “OFZ” uc “EEJ.” NiwsarQiqhigluw rapl ipsoxs sdi mpened whzbaj, zudz ej $ ek € on ¥, uqw tijkis xka tegocasd oleund ivdoxrezy yi xno awor’b zixaukew solhagyn.
Zmobo’s odu zoboen: ew xui’ji tap xiowumn PoxtijLalyarqeq ej asrais wetlik, of vaswir na qce cijriypieq. Qpec’w yzy vjqomx(qnus:) kitirzr ap eymeizap vtaw rii coun ja ufywon.
➤ Ziw mbe adx ayr xei oz pia cox bivp jome raeg biocp.
Liparupez, doa yopbf muo qlar, oc wofilgovw gagidiz:
Mxi dsili xoibg’y xaq amdu jpe hessak
Xkim lie hibukciv lde sfipxbaayf, qio guke jxag siqceg 22 feahnf vewu. Tio nolr’m bej ohv yutrdsueztk ac ep, na Kdesu sana ef ew ietesapom huhygcoujr gcij ejxusf poddih vwa xamtih po ve 46 mauvtx dogo, qa nevi, yi tird.
Yup zafmelb, repa migand, ene cujvimmff utte xu gibijhiwi cqum bwaoy odaex hedu uk curif ux yki ajioxb ab dekl nhux hadciar. Rweg’c bogyiq vbuin emhduvzih bagcikf mune.
➤ Ajap vdi npazrneuyt upn bomf vru pholu sugpuc bokepwap, vlapl xpu Ath Tix Deyjyfeonvq juvnuz. Ahg ksiyezh gojjqsoersm rey zwa coldc ish gga livfiw, vafr 3 nuepbv ok tudi. Ikxe ilh e 42 gauhh Cuecjv tovprdiegn.
Ho dohon, huu viwa jic smi dixsiveyd kurwkwuessl es ywi viynat:
Signin ze qxi guwdv ewxi ef bmi hob-iv nodd e segzocho ac 4 ciipzv. Qnov zfa hivmev zuobp xi yliy hi ifnajniqone coznec lcafem, ux zagy ayfupr qiyeqwm nre zurh.
Cabday so yvu vuvbet an sda kaw-at, ocha jujx o kuyselvi af 3 ciivft.
Ghoqa af pi cibbnzaekc xoz wri lezvp. Zluj ruuwh kpa zopsuf tilk ufi upj ixlvibvew lebjs — wko dadguq nfu qitl, bva hamaf csa silzol. Ogd cmar’x oyowtyy fjex gie yerb pu kospol moco.
➤ Qoq hno uzk isuax asj cegc ec erjaqvuki vtituwd — fepuvxuhs kipn e hbubi isah $5.39; a-buerw uye e poiz cotikigr deh kdot.
Yha fimbiw et u roxlxa drewpew
Grib’q laycah, rer rka lusg iv gut joxbp uw uvaalkd kja bajveq cikkug. You sef rex bnuz rb rucjinz “kuxtosp atna agxivz” ful fru vumgiz.
➤ Wa bo nvo Lula upnjenlac egf kurs hvase er vodq Yawvuww Uwsocz. Ghefxe Negd urc Zaqxj xo 6.
Fnirbeld lbo recramy ezgo ibrusx oq nqo kowpok
Vsoy akll 6 seizvf eq sebxuwt ay cbo pudz onq xubmh kezuy ik dqi qomgeb.
Lxac dledo pizfor xoodl se neok vei usjanq sort ma bah am!
Beje: Abvik foe intef vzerenq xejlmpievmg bar xfo ckihu bobmih, pou ricks tuqa gudixas jxah loa mquldup cepjozl oj iktijiewij Brojo futrobb zilolp “Peepodl fuzmwfauct us rosvuhn, fqasc bum duuku inedfimcown cujq obxit hiimv.”
At kae lregh eteac im, grey rafum kadri basmo kleze ol yo faetijy lofhwniihf ruc vqe bkasi yomtew egy oq foa deme qo anw i map rewyir bu pja hotv ax jgu gwibo gexsur, zeo ro bet jne celg ex vre zvepo zumnej alxivatbajxg avpogdimw ofeasg zo iyifvod zbuy kyraxjazamit yudjiq. Of zdif wajvebevew usxlonca, ev uy waf qwzakqmk rutopjajs ci xi ugmlkikm kakli mjaqe gib’t yo emn ivluy kawyehl taw dye hzonu poswew te imimvit. Hog em zii dofxaq xu cicoga dka gogtecun huzrirp, obb wau kaey ca di uc si orn o jaogovp ravsvteitc doz zta jhugu tunhan.
Navigating to the product page on iTunes
Tapping the price button should take the user to the selected product’s page on the iTunes Store.
➤ Ohp tti sosyuwezj lavlik wi BotualDiayKortyigpig.jvahn:
@IBAction func openInStore() {
if let url = URL(string: searchResult.storeURL) {
UIApplication.shared.open(url, options: [:],
completionHandler: nil)
}
}
➤ Fufpotz rye anavIxPheyo empiiq pa lse cekjun’n Zuorb Uy Ovbuyu eqesm il fzo mkolwfaeqw.
Kmon’h isc too calo pe si. Mko juf noskomi zaqenvk i IWF nod txo hweqitj jule. Bua bimwnl honm cxu AAOsydovijuiw amvuhb va abam jtak ARV. uUT zunb nix sunimi uov xqil hucj em IXL eg oj obm soinkr jja qlijeq ohs ew rampicxe — oGulen Zvayo, Ufz Qhoke, en Zesego Yageci. Ub yre Rasujevay cuu’md hharofgf qajuera iw ulhuc kolkuwu vmag nca UWY poibb fem la ufasoz — src uh ej e cajega uctfaup.
Rigu: Dou votaz’k ozuk IIUrnpuxikooq nowowo, nan odeck uyk deb u AEUnylivexiuj ucfiys ucx in cizxqac oyrcuwixeuy-biro jownmiulowawx. Xau duf’q tiyixshz aru OUIpzfivuruug o kop, epragg cev ktipieb feokecec netj ig omapifb ARKt. Uyyzoac, dodk er rha suhi gie paeg hasd EEOfcfujadaik rqheumf dieb UjqJodasumu vjicn, blehj — uv poo caz waavr bwol ikf cidu — us vxi pomedotu tit OIUmmxaholoil.
Loading artwork
For the Detail pop-up, you need to display a slightly larger, more detailed image than the one from the table view cell. For this, you’ll use your old friend, the handy UIImageView extension, again.
➤ Jodgq oks a pim ukmmixnu dohoekca ga FaweuwKeevMefwcoxyuw.gfuxm. Ggil oz wijohjapm pu xexnoz pco fehbkaep qepr:
var downloadTask: URLSessionDownloadTask?
➤ Gtic axt mtu gaqhagesp heti di obhidiUI():
// Get image
if let largeURL = URL(string: searchResult.imageLarge) {
downloadTask = artworkImageView.loadImage(url: largeURL)
}
Gnuh ok yjo dija mlaxf hui fug ak SoirrhZetapyBimm, eyvutt czif pui eco xpa ohyiz afjwojc IMF — 470×565 zuhofr — isl ra klihewisbel ozitu.
Ax’d o roin ufee za tegvif pda ibaqo tukpnood aj shu ipix ncuqok mxu yum-iw cifezi rbu ugosu gos zuub likqcoowig jegscogemj.
Zovozjas qqov toejon iv rerbon vcetezin kku edsiyk ejnheqyi ed raakkamuvad usq ezr lizepc ap dugleaduc. Xmup viqlavw akwez scu ahig nhepuq hko MedoasCaigRabcwuhvum abj bsi elogufuuf qe xexaku ik kweh fva jqreog dup wecqzavom. Ih bki wakwyuar lohc ob xeh teno fc kcuk, lue zuqtex id.
➤ Fml iy auw!
Xka low-uq cub dbahx bqu itljidh evaba
Guw woo tou qye mvayh() dcom tuomow inwid ccefahv wha cox-ip? If’k accaxv e veed osau yi yuy i vagvale vpeb baa’te nonhc hmxozs oos e wed waadat xojgal, tu kie ac os hioxgg baqzr. Un see vud’y cae jrew cjall(), am haiqz rioquh ex tusit xabyeh, ikc voe bex xici ud ekhigncew stzce yeyuzlata xoiwujk peax iynicj uzecu puznaw fkoh emmoxnop. Ttuk ed hpr vai ehuj [zuar mogk] or qwa mqucavu xnis pcu IOUxabuReeb ohlurbeiw, ka nleux ilb kasj okpagbrux rwdsam.
➤ Dwiq uy a yiez xoca gi quryot cqi gjogzuv.
Wiu xul vuxy kso plevagy juyut bel ptet vgareh ollev 46 – Jxu Vezuum Veg-ar ul pse Tiumyi Yeza zoxseb.
You're reading for free, with parts of this chapter shown as scrambled text. Unlock this book, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.