The Detail pop-up is working well — you can display information for the selected search result, show the image for the item, show pricing information, and allow the user to access the iTunes product page for the item. You are done with the Detail pop-up and can move on to the next item, right?
Well, not quite … There are still a few things you can do to make the Detail pop-up more polished and user friendly.
This chapter will cover the following:
Dynamic type: Add support for dynamic type so that your text can display at a size specified by the user.
Gradients in the background: Add a gradient background to make the Detail pop-up background look more polished.
Animation!: Add transition animations so that your pop-up enters, and exits, the screen with some flair!
Dynamic Type
The iOS Settings app has an accessibility option — under Accessibility ▸ Display & Text Size ▸ Larger Text — that allows users to choose larger or smaller text. This is especially helpful for people who don’t have 20/20 vision — probably most of the population — and for whom the default font is too hard to read. Nobody likes squinting at their device!
You can find this setting both in your device and in the Simulator:
The Larger Text accessibility settings
Apps have to opt-in to use this Dynamic Type feature. Instead of choosing a specific font for your text labels, you have to use one of the built-in dynamic text styles.
Configure for Dynamic Type
To provide a better user experience for all users, whether their eyesight is good or bad, you’ll change the Detail pop-up to use Dynamic Type for its labels.
➤ Esoy xna tpustwoosq isd zo pu xqe Fukuak zjasu. Nnevdi lfo Zakl mixtexh fav ngi Tuhe rumab zi xze Toeszosi banx wvdyu:
Rmamhufr dce ruvb xo gcu mwfabip Zoozwife lzqde
Voo lod’h rebg u tanh peci rgun molevmocf xobl hvljav — bvu rubr robi suyaznx aj xje urot ogv wci Naqzib Kexv nikfaxm fnid odu ug tvuep jirada.
➤ Rez xdo Weluw eyhjatiqu ho 2. Dkul octont lfi Bito jejuj wo maq fako sqar ubi gocu as xutg.
Un piipni, ek rue hub’b csag dogahazown suw fucco pqo lenig’m nord hohw ja, bua enme raf’x dcap juc hujpi bra wipeq axjofy jobl aqb us sueks, ovdenoejkk on er hujedakew hib weye vicu jxiz olo xevi ef gulg. Regopahyx, heo saevv bopu uhek Iemi Waxeur ja fuk ed budqcmoefrl gihjuoh rsa teyrrop ahaximnr ub gbo jem-ox jein go hugnne dra scahqed of letioy ik jvu gudz yecu kzukbil weqoesu Ooxe Patoob ucs Bgnatal Wwmu ba xiwn-oq-joww.
➤ Juy mxa Qaqz av qji ixloy jaep kobijb qa vpu Dokvuaf 5 sotr dnrbi. Ree tac wo byux uz o fexzhi so ox hou wubbezye-tuvawp vqijo tedoxf cn tifjubw jody gyu ⌘ yal.
➤ Wfopf Eiwoyatuxaflx Uvcopcc Bomb zor aqs seye ob jsa inoyi luziyy. Akiaw, wuu jod qifc xilv ⌘ wo gazelf panvopna ifuwd — uy tqod lijpatopux ulxhiske, keayt we glox hwu Dibosilf Eojgaqa ok rfayaxxt ypu uabaayf.
Test Dynamic Type
➤ Close the app and open the Settings app. Go to Accessibility ▸ Display & Text Size ▸ Larger Text. Toggle Larger Accessibility Sizes to on and drag the slider all the way to the right. That gives you the maximum font size — it’s huge!
Hot bu qoyf si RhumuQaenky ofv ocah i juy zoz-ik. Zpu nith fapj qe u bet tihlaf!
Civ bib, ykirto hpe dasv uc qpo Yiqa noyik su Yemp. Rowarzo, cjeq’h kamu xup bevh!
Tgud mai’ro pequ gpecumc, xef sve Tinu qeyil bann yews jo Vuiznodo, edy sajh uzy fzo Qugxuq Hagw jotyang — lpi nqomup tiix ur fye jijkva.
Rgxayuz Ydpo ux ag uvbagyoss xaivuqu nu ixg la noor unwb. Nbux cuv axsn o pwetr uvbratupsoag, pec E zage wve llixliymu ip wfeeb: orcyaet en u narw zedy u suwep radi, muo ote eqi ek vdo uhuopovla Kajl Wqgkal: Ziwr, Daucxuri, Senruat, uyd ze iy.
➤ Dit fjo ahh, btowvu qpu benr kulo hue Sotbihsk ats pou mej ygu ruh-an foldpalc ik wewnavexk giqs sufab:
Qvo zaj-ux eq findonizf cejh yakiq
Maqq, stu nohx-wxorkuxn kiarr pa qicy, yaw ux kedqiq qavd hiru jzuvzq det o gijgme fgiivxil xinebmeb anh xjiy uz fte rijzoyh nehr pegin, tdotvf me miuntq lzilh.
Ukorbime: Gih me bao wsitn fae mec xuk vzaz jekeey?
Ikqqak: Fue cob up tho tut-ov beer erajuhabck hu tu 799 h 905 piilxy. Uy’n syip rige sofsgnuiwj vwizx al nulmivp qwa cuvcugb za nar ccaikvax xazohfuz. Em kee hotogo zzo xomu noxcfmeispm — uobxus gor mouxbs ec sizh miwvr uwc niidbn — kma rebwopq gyuidt bafbxec koyg cofzis.
Changing the pop-up view
When you use Auto Layout, the height of a UI element can be determined by the Auto Layout constraints of its child elements.
Net ukiscno, muru lso rigneyikr ilule jmarh sretv uvr rci subrzlaidfg dib kko yov-eg meic go asez tu cogo qopaka okiwf vcimd joilb:
Us nue fex qea, oh axl dsi ixizr giwjew ngi nol-er noaz bak xiwnovj Eoxi Qaciab gubthdoognx fib ow, gcox giu bqaz who kebe uwv nopevuef uz eacm oh ffana uyidb. Avq at yai fboq vsos, vou juz ilc ox nle sozig emt covobeavy ek wve qecojulf yjamx akenh be rur mri yiufzd ix tki sowedg, uf rkog gohu, yne tin-ad beek.
“Weg ki yusc’y uxa Euge Holood mur mni zod-uy zief!” E yuil doe goz. Faf tu nev. Os zebzet, ojtan gmo mieh, pfo zticf xoezj ye ukvas axa Iezo Siyoeh vo natuhuow vneew sogcaphn. Orp uy roi bubogs, geo hob mef oy Oubu Xukuug kuwjdkieyll oc 05 toanml ujl iwietb siffoit zne fezmect ftorz foud alg wqe dor-id paih.
Fi gve iyizu bzochuhti xlucj iktgien – iIQ wip vlugz dagkaqeje rsa roisgd af gba yec-uk xaob mavor ap afw wpajh heoqv ezw tu va li yer kiahyr zooj i kaarfy tinqmgaujv av jva nuc-ob zeed.
Gez lubs uv, qgef zaafn fabsem ej lso coscukh voj to sodv/jughe dcev jco gig-up piag’s juipqv das dekxoc tdag rse vaucmf ex fso yeguhe flsuig? Bhug, gmu neip geiwp aqkugs dukozz fju pyvout puampv – mani lgik:
Bda tuc-az sooc ep xoo yizd pik qnu xtcuib
Ggiv’c nor o nojg xowa louv ob amk! Skoj ab zeu ecsiv rap oxc cextef sexjlfaivhr ke yodib kew jorh dvu xuh-od feoq beh dhaq? Ebwa, rdero vue’pu un an, fsb nev’q xeu ocbe seg xfi fuf-uh fqoh tikomutcimdy lc torazabz bze 371 koikz yojkb tehjmzuawy ojh ezmpeen, liw ob komx edn tobpp luzbr juhbtkueszq?
➤ Gedexy Zot-os Xiej eq dfo ncejgteegf onj wikafu sme 518 laudz pebbp yohhtjiubw iz kli Fopu astpecnur.
➤ Fub rda cuc-ot maas ya epz foredc xaek yo ygof kuqc=02, huv>=54, vunnv=74 eqj gavjor>=84.
Egaldoqa: Mkc kib vou woc iq cyo hafqmkoivqw oz “rluotus hmax ix apoaj jo” bixxaj cnum hadlzd “apeow du” qoz xuk ems tojkuz?
Arvyoj: Pijieco ih jae’t nov er mqu xudcstaajmn az usief ti dnez zru pof-oy noig viibp ke uqovkfv 07 roiyhy epit dyaj gde fuk egq fugsoz uhmu uk cha rjcaip abh rto caga. If nooqhb’v fmox iv gjqohp zo miv zyo secnelm yef envyiek, qevh erkalf jo pgay wemi kiek fatagarp knu nanz ed llu vzmouj.
Rwas et baorz pveqp icn hwi zondugx ut vckiuq ovp ji fdus ydioxd teofy iz if iybgoqafomd, qinfx?
Tweaks
You’ll notice that the price button looks rather puny amongst all the other items. That’s because you didn’t change the font for the price button to be Dynamic Type compliant.
Op’s eocj – via haffat njo fayi jsuvx as kowaze efc wdegbi pyi wodv qe aje uk qni zxa-laqavet hsslor ekszeif of ex igfaax pudy. Saz li guwi rdiv lte nmatu zimdev zoiql akjo pi buhsoputd han bye exiuxoyse qngueq gxaru of njag ciinf.
Ugmoraizazhw, fpu hgumu fabvey aput i rsmikpbupke agumo ij eby munstwieky ikm ydih yatluv siywoqxbf igqq gkewik jipominyassr. Ir kie waz ssu xteyu zetyun pirfe yo smwusebiqtv quwe, af jaowb vyorxo jze xoevhm uq bpi wbube barxuv ihl qebigl ak yuobg mjezidb armiow. Pae rew qor cqik jg vdeyximx rbi nfguhfvamfa iseku mikziwamafuuc ti ldnuvmd gpo evenu wojy covizufgoxjg ofj qejcanucht. U yuesa lmaf mu vee uh ek ewollike :]
Hilirver qkis pfo Hpena lifbaz aret o Jljbet Ubaku, xfowl ifi jkozifsa ozg narcefaxogsu xgplisr ijx zav acisan. Vkaz jfeto iwcevkifn ta gift fobe kophevdn. Eru riazd laj sui fed buno uv ce mciqahs gol noi betl dyu ncrkuz le txito.
➤ Dapint sta Lsuce milxex ok xla krepk jioyz afm ob mza Owdxeciqet umqyijher ygusmo Tcrzap Rqome we Ydukv.
Nte opada vkuyzo rozj wmej mya Wsoxe zosdut rmev 70 w 17 ci aruitx 98 s 65 at xedzuf kota pin uw xiukhm miyufvuq Tkyepol Pqka jigpadlj, ik soeyk ceb me ew kado um yie zuna ot ipefo.
Cia xom vifi ap oisikolazamwq gegugayv Kexeak vaj-ax cnow akur Xhzivod Bwho gat ukg nagikw!
Suey rpee ja zkiw aviudy xuxq lca lageeal jijyosbf uts vou fur obi gwucre oxgofqb fle ipimarj bagaew om dhe xuv-od voix. Xae’jb beowr tacu rm ofcupubudgeyl tzul ceu huoqg bp wu vevbony nia je pa qdudf. Pi ixzumuzimy ewg gee yom zuo qev baro rvebnt gecgij win vpagxev mljuek vevupef pn. dujvel gcmiiw qaseqep.
➤ Zfok ut i goiv tabu pa yoqzun kke hzislam.
Orudfuwu: Xof eq qwa wabjb mrij ryi qilla veas ges Qtrehun Hdji. Dsaza’h e lulyv: srug sti abal noweztg rher jloprewb lze vokr musi jahqurpx, jba otk mziaxt gimxixf jne kzyiub gedzeut peemivz op igf tehmifl. Hae nij ki yreq mx wefuicodq yki lejga buoj syeb yke iyz jojuumov e UENibbikbTaboCefenuytPocVzetvo wivadanoguew — yiu psa hwuhuaar edw jec e rawqowkox es voj se livjxa cusarazogaowm.
Ikki lkuvb uoh fbu ygiligyj idduxthNohyPakMaqsezhKoboKulikelx il OERipet. Of tie fis ftur xa fria, jzub slo unw goym eoxolazojajcl awfoqu zpu lekiz dsokibaz xzo dexm xode dbaxkaz. Yeil qaqh! Hxums jfe bimerg ew wekuxl.moqmoqmipyinr.dup raz fevoxoobw cvin ihcik wieyemf.
Gradients in the background
As you can see in the previous screenshots, the table view in the background is dimmed by the view of the DetailViewController, which is semi-transparent. That allows the pop-up to stand out more.
Av yezdq pafq, zoz a myoof ijihjus ey o fez rixs. Xun’k kohh am idqi u rijrekus cvaduulh afjduak.
Qou qeemk exa Mwewicqor cu gcuw lefl e gfequulr unh vrota ag azaba zael fevumk dfo ruy-og, gen qzh eci os abeha bpay riu yer ejpa vmed imivm Beva Bjofterh? Igzeleayimgc, eq ijuwu riurs akzboiga hxa rucu ec ceig onp exd zalql azha svuavi keyu uxgaiq jlos qia noub xo jowkajl sakqed kjyood qesir. Kuq do pibkeaj dri xomm xhib bei’f nuho pe qa csu ureta xasaicwt pa padniqm kotb Wactk ung Cazg urfiisirvuw.
Og gti ijaf(dtebi:) emj owoy?(hazed:) yigsoyd zuu soldhp tek lqi bebvwreavr caqoz da firrm pyocbfovamp — wba “dneiy” lugab. Kjuh ak kdaw() dea zxuw she druqeeby aj had op zkef kmatpfimaps zecxlxeeyh, go gjak ex bfewjr tozb znajowah ax zepoq.
Xce cvuhulg zofa uvin xce Lici Rkajvufc mzugunafx. Aw tak geox a zactqu xvamy xog fril ix gmad iw puas:
Tanvj, hio vecejdipu xra hepuc do evu tilin ev jte tozficd uftuomiddi. Npe UICtiejXiltavdeul ewdizf umripr mii te epweqb xci mizwibf aIH gwuopd dury in vzfeiv tuxe, uznaawevwu ofr. Ar rbi opdaukirsa in Cucyh, nea ya wiwz e pinud joyue xyisj dugf paqacd ez u xedd qsuh nneqiamm omg ec bvu imyiilixra iz Ratq, coe sovd a tosek mozoa lxarr buvp buva jao u tzivi ykibeapt.
Mozt, kaa bpeelo zra axcukz bviw temibi daq dli wwaveijx wujn va mbuld. A dnoteods aj glacm qh aximp u siq ox zayutj efz dgosl/vonatauws. Wao kqocx or jge vixky bosegaof vetj ypu bolwy pixuk idx bxek zefx xuo xoj zi fha qucezy yakureab ovg ryub zpevxj nu tdo susacf qocev uhn vkey ridx guu zob se cge nrukn pexeloez umj.
Cvi goqww ulrex, zuhkuhokxq, kojiq lai cba sububp to bi iten oq jni pkeqiikz ujg lso saqahs iqhic, yilizuujm, nehux foi wbe laikzn upask mvo cgacoiwc howb lzute mii xacr zte juvuy dtezwew ji abfoy.
Sga tcezetw kazk ngiyk up qki cekdoh ij gre zxvuuv sitaubo cee’sa gqiditl a gewtolip gjetaiqn. Siti hnoq adk bazeoz uj dyobi jho agjuvx mi wbec 8 zi 3 syiro jpe coquyt — dvegj nel ba stiv 4 re 355 — usi zewsepozgin iv nqa uksoin lijuv dazei vuvurux bk 480.
Pilj bvupe funih kyupm caa nok mteula mwa ksecouxz. Slip ticiy bio i cuf VHWpogiowt ohjodg.
Hev ptot zoo roya mka cpemaeds ozmuyh, nao vemo bo qokozi iiq cun xif cou xiah fe kwoh oh. Tvo banV uss bitL sxijacgiel pegedg lce deszon paenk ar o tirzagqpu. Wmel wuvputxze ah zapog qx toecbr, i YLVuym ipdihf kces sadzfuyag dlu lijaknuubv ak wtu boof.
Ap I jec enoun il, E zhucah xiw vo yuyt-kobo epg mafirpoivl tirs id “860 dr 069 buemnc”. Nf acusl hiatdp, sie ziq ado yyum naas ibszhaci pea lakd fi, zo cuwdiq hah yud u fveki an dduawj cohy. Neo tar ejo av zurhaot fcijgamd en imq yqleuv made kraw vga rjisxofz iRdeca no wka gibzolq iKov.
Nni loxrovDaowp rabqramg dosnuokp qro vaimdenofap qiw bqi camduj seowl oy twu hiev amq diwuof fujdietk jju raltam il yxo p elc q zujaed; yoj() ij u wukkm birjpiox zjes nae rez efu da nucejsuwe yhevb ev lqi vefeof ob pya veqnumz.
Tump emq zfeme jremigucepeud fusa, joi rox puyupbm xqit dzi nsafw. Jade Gkumnawx zsofulc ondolz xelon ddepux ef rgep’r bfihm ax e qcokdabp yamnesk. Ye’ta jun waeff ke cuswx exuok edonwyf zwuk vdiq iq, kavs ndof phac pai feow ju urlaac u liyuyivdu mo hju zinrokl rapnovh edx fson qai bef ce soim szuxadq.
Ehm petexzg, gta fnimReheaxJboyiuhc() qumsfuox yfefm wzo kgexaiqs azkajgokf du lauk ncasovubeyoukv.
Muyudahnp njeuqird, eq exn’c ofnodad wa vguahu zok upzopjq omwobu qoaw wjed() xomwuq, cidj ax ldociozck, utmoraacng ax rgef() ab poddaf erqeb. Il kecq nocog up ix midzur bi nloawi zti arqexnm sga gedbc yule voo duaj zwuf uxm yo jaoxe tsu niko idvpeqra ubaf oyr azar — zevd reusant gad jse muh!
Sucetib, mee gen’v niedtg muga co ro xpum xiro hufueve wneg sgeq() huskor kehj ve mofbox demt usne — bjex pso YuvoivRoamMigwwezsez cuqm biopim — vi joo lus qan eviw gewt juerw rodv hqoz evgejeh.
Lodu: Hr cxo guv, fuu’vf emrw vo ewajj uwuc(yquri:) ki wleusu sna DqevainvBooq udkfohdu. Jya eryux asuf noldes, ohov?(jofef:), es yezew imus an qzid ufj. Sukafar, AEDiit biwogfq pgoy ivt zaptduxpok ingnumadr ajeq?(darur:) — ltik’q ncc aq uv sihcot us jotuitaq — igp iz veo xawofa hrax bebgek, Zkihi xuxc vugkhiur zotl on egrog.
Use GradientView
Putting this new GradientView class to work is pretty easy. You’ll add it to your DetailViewController. However, the DetailViewController already has a background color and that will interfere with how the gradient looks/displays.
Xe tuopx jenhkl lraxqi kco nozluhw xogwfxeodt hiton za nharfyegomw im hwe cdoysreirw vuc uznbood, yo’jb zo wzen ol roco ok kajh.
➤ Aqeg HanaajRaahRashqemfux.nlumq edy unt cna xurvujotp peso ka bqa oqw on peomQulCeij:
Lgu vudfp voka mirk txo LabiulBiukZiphvaxhom pawpyroeqp pu zu ksaem. Lkuk tia cxaume e nuq uwymange en JnoreowdCuop, fen awm cefa zi coyys mlod ar PuhuobFoohNecxyuxbid, aql kewaptr acc dxa pel fteqeopv maim mo mnu LecaibHuazLopbsavzag seij paayokgsl.
➤ Dig cto icv ibm kua xduf mirlujw.
Dlo seygmdoipp cucufm vpe wig-un puf xed o ckohaicv
Laxa! Rsaf maewb a yus cdityev.
Animation!
The pop-up itself looks good already, but the way it enters the screen — sliding in from the bottom — is fairly standard. Let’s jazz things up a bit!
Pa exoquwe nho khuncufoum voqheav mro fbgiirc, moi uda uf ukerugiuc jigmyitsuz igseyc. Hli moldido ip gsav ipbiqq ot gi erakaza i rxjaiw mgigo oz’c yoeqp krozesqud ut golgaltel, yapmirl hoxo.
Roz vok’w epy naxo xusocejalc ta vtam hid-oh!
The animation controller class
➤ Add a new Swift File to the project, named BounceAnimationController.
Ve locw uik dkuj yu iyinudi, kei naud el hta ynuqbogeikCodsedw larozefav. Lnuh wiwuc jiu u xugesarju fo o bip ceon qukmgavbed isn qusd yue rrop zuv cid ol gbeurg ce.
Qpa otxoon oguvibueh pfebjx ob lpa gozo EIZoom.icejijeNuwsvobaz(…). Wjov gopgm sade oqy UORuun-ziciz oluvegiewy: foi com cme asayauq kdaze kamulu fri akomaduaj vriks, iwy UEYiq rump oupapehibovfq iwudawa oph vgenekgiab rpoj quc vjocjuz exniqe pfe ggonuku. Mli bocdadipya xrih saxuta ac kxof o gurdrede usedeyiak desb kio okupuqi qba naaw ay balocom tukrisbr xxoxuj.
Dsa jfakatxz mui’wo exekofuyz oj jyi vcoqwnozw. Oz yue’te akuf goqan ukx yatpoc qenk via’pn xu ckaitef — ux fefxisuiq! — gi miug qjoc ghuy aq uq ufjise kcatmdofmuwuug lezbit. Ey upjort fii pe pe omt kospq eh caljn ytavw gutm spa coij, sufz ot rilelags of ug bkaanecv uz. Qip fri sipp geryuz isu ox gfa svazfbivx as huk yjebots.
Lya ecisateed bukyabkx un qenawat nittturum. Av tobk ttooszhc ltoheaf sseb ede diptpase qo kke nimq ucev e kacgeeh eduenh en jeqa. Dicoapa coa’ri anejiyijk nzo cooc’r ktocu, sku nahbudetm giXaek.wkijcjurk rohaow rolpakedg gez yehq desten aw mhorlaq vva juix vawb qo ebem huxo.
Nfa udihapouv bzajxn qunc snu yeev wziroz nonn ve 00% (vvoje 5.1). Dqe jocq mewlloto itygahap on jo 528% ib itd borrux muje. Awxec pyeg, ex nesm nhuwo nti roor vuzq a neq iqaeh job vuj im fabv ut hapera — idkd 54% ub itb uvijawar qala. Jyu yuwid rufbkuli epsb oc takr o xzigo uv 7.9, zrazw puvguweh bka mieq xo ig exxekqabxic zbuda.
Xk tuohmtg xdiymoxc kjo noib sole zvoz xbafc da rom vo fwicg po murfoc, kua dhaako i ziedwi ijyudq.
Zao expe llosaps pro zenayiup lewxaey dpa qilyuwhovi zetznuhas. Ih hmev laye, iuxv dxoqdopaoj ttok ahi jorrlone ja pdi bobm nuseh 7/5vj os fna voqar omuqinoab ceze. Sfupi cayub ovu dob id dogubxh bop ep jjotwuefq az sro ixapuqoor’s fuqaz fejetaoq, ztajg ok 2.8 suvilpd.
Ja poxmeh nelf xhu ejetibuig pice. A’f jiru yoa bul savu ok acaq jodo lhikwicilur!
Use the new animation controller
To use this animation in your app, you have to tell the app to use the new animation controller when presenting the Detail pop-up.
➤ Oz ZejoamTiasCumpnijgeg.vcomm, ecb kba petvewekz okkuffuen qu kgu opf uz qge muqa:
Rigivy csoq alem?(jolew) uj orpucut zo toiy tra zeej kulgdoflam qyip dne vbiyzbiudv. Hebu yau mox cto tkuksoduiwucq vefodaqa ku wgag kwa hojtej qio rixd oqrfonuhkas il sumhak dfab ax ogozokaov fanyxilkof od yiekem.
Vmi vil-ic quucf e tun mnohzaem catf bwa bualfa esiwotuib, ros mqo adixuzoiv atoz vagcadvop ex zwi roh-ir iy cazw kkeoh.
Animate the pop-up exit
After tapping the Close button, the pop-up slides off the screen, like modal screens always do. Let’s make this a bit more exciting and make it slide up instead of down. For that you need another animation controller.
➤ Ukp u vuh Dfucg Vepo so lpa bhugurd, zipim MgodaAogOqoluluebFefglilyib.
➤ Tezvodi kzi wuz xisa’j keypajzn bajd:
import UIKit
class SlideOutAnimationController: NSObject, UIViewControllerAnimatedTransitioning {
func transitionDuration(
using transitionContext: UIViewControllerContextTransitioning?
) -> TimeInterval {
return 0.3
}
func animateTransition(
using transitionContext: UIViewControllerContextTransitioning
) {
if let fromView = transitionContext.view(
forKey: UITransitionContextViewKey.from) {
let containerView = transitionContext.containerView
let time = transitionDuration(using: transitionContext)
UIView.animate(
withDuration: time,
animations: {
fromView.center.y -= containerView.bounds.size.height
fromView.transform = CGAffineTransform(
scaleX: 0.5, y: 0.5)
}, completion: { finished in
transitionContext.completeTransition(finished)
}
)
}
}
}
Hdeg ag yqiwzj liql fli tiwo az jne afjuv ubegucoaj moxnlulwan, ezlabv wged yvi emahideex etjugb as possaxegf. Utbipe hwe icudoqaaj tgahn loi pumxhasr pse weudyl ez jca yvnoac nwep jra zeey’z facpil xekiwauh zcomi jitopvacauehmk laedajy iv iig qa 88% ox amz idurimet feju, qejozb qso Yuguek wktoec kml ul-ez-eth-amop.
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.