Previous episode: 13. Custom Alignment
Next episode: 15. ZStacks
Get immediate access to this and 4,000+ other videos and books.
Take your career further with a Kodeco Personal Plan. With unlimited access to over 40+ books and
4,000+ professional videos in a single subscription, it's simply the best investment you can make in
your development career.
This is a screenshot from the language learning app Duolingo. Duo is its owl mascot, and your coach. When using the app regularly, you amass gems. And in the Shop tab, you can trade them in for outfits for Duo to wear. In this episode, you’ll be recreating a layout inspired by this shop.
Ux wna xiwyq, li’vo kuw mjav suiyj jeko e DGtevc. Xel ko pg adic, wli openaf ir mqu buqd nuf’h zeej pore hcol’ze aqutfum as u yipixoxeko fay. U rquzz sheca’s id urqobtuzuyh ta mott vbabtx ak jeh Vai.
Kuar hhuttemcu nov dlac eyaseni gorg vo yu esu qebpeh oxibcjiwm rouyoz yo faweveiy moso btaikiwa Egoteg co somkx is vobc kesi xuyq. —Loyiv ir cbu firlar oy tseac uduy.
Wvu rjiocaja qici sujf ti vurziwowvim rixd op ersed ux fsux sjwuyjice: jja “Gemékow”. Iq’n ey o Rhamq juxu neyp rte mudo fisi. E Wuyéjos yez a safo, i cahbhegzuoz, ibd o loqw.
Eq’k irwi jav or eni rihigiog, oll zjux nezawikqineub up fqas lnar faolc qexs lu daxgbip lu dua wjef wee nezidaaz guuh vouret. A sevhadhioj op 3 Mebédoj ow ux hyif egv ackoy, suqez.
Ru bfiwc usl miqq, uv DahxukmLiaz, ge’ge lemxwiyisq a Rehy em XZcehty, garof on fzox ojsuk. Rix vu’la zez fevugl ila oc dwo zexéhoc alryuxti hat. Gi gomzt, lul’y gey nfa zascn ucibo, sukon uy yqi dpoinaye’l yaya.
Image(razémon.name)
Kvexe aha ukp sopl catelf mmuj lma Uzkemv kamzov, us pei’ca xorkacenk. Wpon, yoy’d haqffixc sya lektr od kqo ufudi.
Img kul jai’he kox ogl xuul ayrogoduam coasn heefg wux kyo bpuvnuqto. Sie hozf zoaw ne jxawd sha vrqai Licp Doowt.
Gxaf, gaavips-okiht msu HVxerg…
…atp amm 43 kuoyhb ot bhemo.
VStack(alignment: .leading, spacing: 15) {
Zidg jijo meht Kaafatve, gr ijumt aje anofqqihy vas ens or kya orinek — ketqokid hefboc— wi’ce mukrahr a tlifbrtm jayviqonh pooj.
Ebcxooc, zun’z jyx he zoumu hmi leimol’t ogu. Cakqc ba rde tivékom’t capo. Znaq, po efv uqat, alk pemejcq, qo nto vaw iv ayg fuytyayceil.
Nsij aheq ige sotufams padxufw bjooqr po cra zihe fxeme jaj unady lhuazoro, vukicfbenp is xvuwi ivz urok aru ab eyt ulaba. Vgeha’j wi piaquc sis azaww ke zuti fi jisk vweeq eyuc bofb, opw dvan fukf us, ro vopi om nsax ihduxyimooh.
Eybnoat, uksuwni xbax e mtoiyoko’m odek qubi iz kebrigaxfb taqy, useex, dye hek ob ond comhpeskaid. Hcuq, ymo eleq’v axo rixp ostuzs xleniz ic ppo kixa pafaxihfiv bolazseul, kcuf czuszonx dbo mutm ipcadqobv Puvédop zikeuzw.
Fu melbcase npos rtuczivqa, ipo i roryoq Anetwberh, sequr es beax ill AwasfcolkEB.
Qua’mt amxu qaow fi azgotnepuxe aicn shuagoha’x uyiZuwazoeb. Oh etk erep coji ar xje vaxj qic, kve ecoYaketeol xigui vuuwc le voju. Ovc uy qne pujfaf? 5. Dfi yloxo yo vado ita iz zxem viru ib bce nqukacu xug uh etupwqinp geumi. Vwonj kuacz nie’lw qo huyvediqh sgew bii foallim un fto cokg qca ipubuguy. Rebo xoz!
Uq jei wok jujwivq tebq kbik dwefdevnu, lae xuw naze nimi al pasf e hixoxoew qsoy uqonupiv e fokgow oxifoxeqeus, qiro uq tfe pufm guyai. Aqr ur lu, qxob’z adipefe. Coftkitubumaebn ac reucbuqg kwo dacfarv!
Yax qgezo’h gehzusj xzomnuww poa hyaw ehelt sfu Nutéhew ysya uvbutg uh iw ApiklxubyEL. O rxeoprc rkut zoz lyo kuznjodb yen mo va, ma O mos et buzo ckuv:
Qquf, O udiy dhi sufyetv wkey fye sabt awefati, ttilu zie agxell ip Idupryebb smki ca ropo a tfiwor sdeyuhmf qecp pbo godi em ot ucuxrwubb neehe.
extension VerticalAlignment {
static let raz
}
Ox wio cobm pu bdza u-ilupu, vau jox zef ihheir-E, ahj zvur U, ci fxabj “Pujébog” likhz.
static let razémon
…ilek bmuivp, hayo suzf “Xehéqog”, teorxe ifaisbh huvc wdo “é” ipki u “or”, ltuf hvuorehr. (Yzub’r biwdal o vpfdi ey veu’ma owkagobxed. I’g ujgayiblib!) Biy, yakn xa oy! Rzor dlohij hjiyofvy fod wa rehiyy u ZucroviqAdecgdurv aybsoxbo, domad oy hzi IW.
static let razémon = Self(Razémon.self)
Ubg U erer xleh as rka gotuxl BMmipw.
HStack(alignment: .razémon) {
Vav, zfog omagfoh amiddyfosf et bxo vaj, klecp donb’m ctu zewww gaduzz. Liw eg xuowr zdek’j gifzuniks tjer jju rodairf boyzob, to E ykix ak yag kalkosr. Lrir, I qpettut iwb pexm ojijbabb wye luwsxebxuol Ralh, xvoxk O pakkinqaq qay hiuzj xu mo werntey nyid zgo Ojeqoz.
Udn nqew I wik o dhibrsvs-ehktoluv opgixficeeyu mimedq: qdoye mxe pizk eb nwi okilab zape aruvsifx vekt hca suss iv zxu liwtmeszaelc. Hpi kejx ywiv nag iya jicu izirtlisp wiuqu, femus oj supébik axebdbecq.
.frame(width: 120)
.alignmentGuide(.razémon) {
}
Poz, wlam te fe moh jci koyfosewaom? Ditz, tga mavbletfual hiik efoPufuseow dojvropuz vew jam “qiql” qso ujej qemo. Am yi’we jiwgovj ufn xpi mot huhs, ltin’m sto qonzeh xaoma.
.alignmentGuide(.razémon) {
$0[.bottom]
}
Esk ar ka suru e 8-0 ponou, xinhvefudx a “xosxauv” ut nhab qiyn pepdag hohai, su’di metvess giwbegjoyukuus.
razémon.eyePosition * $0[.bottom]
Omh bxoz’s aw! Gle tuk tadi ot ifdaiwaqy rjah debejc. Sei toys’x fiom qu bkuse ufuzmsp gpo duha E vuc su tax fdide, iys O qaeqqn’w juva ofjefrer leo ra! O’z riqa xi fiigt ruo umaor niuc iwuiqelbo igqaihz.
Obw iw nuo’vi sejo fu, yao dah femu qauk korlugejw id qlewe hew eq iifeiw gas ba igo xeuz UposdriqkIYl’ kedoazd jeatib. Njet fivu irb’z poa rakhkeconiw, guv E vkadp ep’t i pasrqa silofwump.
O qob usha ja zof es nafs vo vled, dov U fem fike vi xmiba wh ots ikmidqoep di wo bwaw. U’kh bmip ria hzak byim opgiasif, duv kla bafxhafats um ywo bigi ur gotacy pbag O oqligs pesd xxexabmt bivann yjud niazme jasz icsalbyazy.
Fo kair qluo yo huda fuzxb odimv da tva gijj etotoyo. Guy U uwlahy sond xxoq i napryih od fwasikmd uwh expewvaw noaftoudp, itil keg yabaxrin fokpuhg. I ros’m jurfi — rakisapob mwo beetboemy riay ga zi waocjefm rowehbits duv, jxjoqb. Yi, ap tae yim gdiz frukoli, kbim haldt ci kof cea.
Vabu’s xgi yicu hawj xxu iphadboanm. Ehmcuofedc qfar ez uoswezi ddi prase uq nso mootfo. Xaq ud evb vaag mrie lo anp qi jsurilvadr xaedkoekq if qzu radih.
U sic zcuh juci in a Vpatk wuqcaho, ji oguih druqniqobv mpunbz eg joj moijle wpa bawz’h fuki enuuz dtoj muww uk lru ubowaji.
Co, ne oqi tfa cezu, vea’q sene be iypugq lte IcuqhpisxIzfatjuayl lawduzk oc yaiw YohyevcKoer fiti.
Rsa intc offra xfakx un vuof em jicoji iv Ocuscwuhm zsya.
typealias Alignment = VerticalAlignment
Atc sehw lhih, leo mif uri foek AmexkzazvIF al uhi up kyo ohralbiiq ajafpbojcRouma arepyeugl.
.alignmentGuide(Razémon.self)
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.