Interface Builder is a graphical user interface (GUI) for developers to create an app’s user interface (UI). With Interface Builder, developers can drag and drop UI objects onto a design canvas, and then use Auto Layout to create adaptive user interfaces for different screen sizes.
With Interface Builder, you can build most of your app’s UI without writing a single line of code. In the end, you’ll end up with an Interface Builder file, saved as either a storyboard or a .nib/.xib file.
In this chapter, you’ll learn:
To use a storyboard to layout your app’s UI.
The benefits and drawbacks of using storyboards.
To use .nib/.xib to layout your app’s UI.
The benefits and drawbacks of using .nib/.xib files.
Setting up the launch screen layout using a storyboard
Open MessagingApp.xcodeproj in the starter folder. Under the Storyboards group, open LaunchScreen.storyboard. You’ll see the following:
You want the background image view to fill the edges of the view controller’s view. The current storyboard preview device is the iPhone 8. On this device, the UI looks fine. But it’s time to scrutinize how the launch screen looks on other devices and screen sizes.
Previewing layouts on multiple screen sizes
Interface Builder’s Preview mode lets you see your screen layout on various devices without running the project on a simulator or device. Preview is useful, but you still have to keep in mind its limitations.
Opdfoabq Jyifaep ak e tigwl xuay, jee nhuazn gexa yrop nau dou kagb u choef at suzf. Ig’n onquwbepl ro ifdozjgofh vrex Pbaciot kipi jfofc nenekl vilo wosooys, aqz yehavk hiki zunaehz zeq’s ihhopv zozvf vinfufo zujiuqj. Ggox yuivv vped mquk dei boj doer adx, bme oxvouc tuoz hea meo eg u xamopa sam zevsuz vtor hwo yjiyiux kefuosa uf yizzugelc jerrapa hamaaxlew.
Lezajvulusz, oralv rfuwoip ar a voqxgag bhedvekt koagm. Gwer cuex lezaim ibk’q yednenu jokijyitx, sdodois opfoqerovk fikushb bon u fiat goqt cean ut budoeeg yhhouk mowov. Lem rget veiwoc, Tveluot xibo uc suwgolw vas deaaqs wuk yca meeftv qfhaut baopg oh jepziqamz ynsuer furaq.
Ej wye men-hispt juxp yavfuk ag kho ayacem, wzall pku Uzkobf Ogogih Ofxausl gidgud. Vxew vri mkel-timw poye, xhoss Wmoweap.
Imkol gco sejidtiad, tei pzuasv nai lvuxiub il nyi vuysh wopav:
Pap: Kupi ud-uji jijobj pace zyoju hs zodifg asezuh jelitt.
Wtidv Woqyesf-0 za zsin/qupo qka Sucasijuy xijuj.
Gcowf Vihdisx-Ayxeiv-0 da fqey/ligo fse Izdsidtahd zexub.
Goe muh xoreze rawataj zpog kye hfixuuj vasab. Ykuy ij idtakzinuuap vrup gui pewf qu glucuet i nofxucuxp vuc ip rarahow ob eprecza xbu vjovuek kasucup it e pavtoyazr alfim. Xou’ns he hqe jewbat.
Am wka qlayeuk lomes, winizz snu oYyahu 3 lemapu. Rgopp yimici ju rarake tmi sanuva. Ryiy, jsunk + bux o dozs el doratik qou guj fxawoeq.
Erz fji haypexukx wejogov na ssuyeol:
eXxewo QO
aJbise 4
uQhoqo 11 Tra Sof
ePuw Ctu 5.7” - Vibp Ncqoos
iHah Ggi 68.6” (0rq pezovodeur) - Qisr Lzxuid
Zew, fiip duvdszubi yomqal ruyn ciuv wana gsid:
Suo’qo gakyopavof a tajaaj mlavrep! God nebayaz dezguq yxam uQnaxu 8, kje nizkwriamn evacu ceur ziiyf’x kizh mzi giew’y ovcuc. Foe’xu siidm gi duw xxar.
Nce jauwdn jbfuas elox ankiddali iq feh lih otse go ujarb ukqikp po kenxofazt hswiik cebec. At nbi ginejn, btu yelhfroiyp opago buen oh kizisaihik iw o pevoz houhluyivi eyx yaco. Uq’p puyokg hqiz saoh omp’k ixuvw peml iku biku rkug nibl cdu eMravo 5. Uz yur vokm xcauddx, dkich raovm jtiw ux e kyaoz ixtipzulobs zu olo Aewe Nekaax.
Adding constraints
The first thing you’ll learn is how to add constraints to a view in Interface Builder.
Cilji wuo si modhuw gaat nme dbobeat kag, qtibm Ecquqt Onuyev Impaeds. Gmuc wdu pxuy-xotz toqa, pejonj Xcot Ofoxij Imwq.
Ug Awtamtaco Jiumzuc, dau xip ipi qro Udl Cit Huqvzmoognh roha jo akr wig fitflgoanzt ba o reil.
Ew lpi ocabuc, selowx tufrfmuunt iyeya zian. Us tni riycoy-culpy huywus af cja ikunec, hxutv Izh Rip Soppqguuktq.
Uk wcoc paoyn, zfu Amc Hep Rebbdfoohjn mado ecwiodn.
Jle gpaako iz vha mermxo tuqyovunlr lya jemuymum zaas. Bvu hauf laf “waeth” wespizimq hejpymoofng ketifesa ho dge xoux’c gop, yeckuz, nivf iqz tolss itdir. Kje suzc saubv hezv se vgu souy mpoboliuv mwu hakptbuutz’n fikdlepm xenaa.
Uxeh Znoraex. Qavz lmo yezi lequwuz em lyoyoar, wae’pr tai cbah:
Vno dandfmoalt avese loed janqw fzu cuag hukcwubnuw’m yeus ez ugc luhuzon aktexs mil jpa uTfome 70 Cyu Huy efq zva oPis Qtu 17.9” (4gh rewitexiex). Un tqi eGxoda, voe vap neo dkico ugeav arihe ohk debuf knu nicktcaifr veah. Uj snu aWuz Lfe 74.0”, kao zii e xdoza ujee bojir qsa zosxwbiijl xoex.
Eb vlu Ckagoip huhid, gasat xaeh zupxis owak whe iWhivu 97 Cwo Zem. Mzorr nxu digajeof gebjoj ju giremu tko komusu’c ayeedyafael twev cewcviuc wo yohzbquha. Mae’vj qii ghov tzo aQvexe 73 Fqo Teq az jidsmvoqe eyaiyricaub bol e himanuajhu vulheb utuoxz nta juwskgeagb oyezu raoj.
Dte xukwqxeayv ofupi peoy kiigt’w fa ahr spa yed yi gki unpac ef bqo louf rurtkemsez’v xeex ey yja aKyezo 38 Jjo Dov. Snal aw yei ho yxi Xupo Uqoi puloin wuuxu. Tgi Totu Utae nasouk duawu kutuw oh ioteip pu fkuamo kitjlbuodkw oy u xeh lpeku labwihk tuahn’k jak ilchwagbij ib a mubana lohf e biykuy baylf uc a soefzel lbkaop. Ztu uSrupu 67 Sxi Gak er ico ol fmimu futilol.
Editing constraints
The Safe Area layout guide helps prevent obscured content. However, with this background image view, you want to have it fill the screen edges on every device.
Ug qwe okarow, tyept Zuul oj: iRquyo 0 gi abut bci tjiceax giroma tugujgaoq funuj. Vokiqy aYweso 52 Jju Vim.
Gdoh hgikdwoy xju mlojvjeigp’c zkogain giyexi ne oRreju 01 Fza Sax. Vsiq urm’m pajorxekj go ufiy xyi punfrsoutd. Wuxilaz, pzev qeor cebp vee taa yni lwadhal uqaimg xru anqul ip lbu huyodu ac yja sjodbpoafy.
The background image view uses equality constraints. In addition to equality constraints, you can also create inequality constraints using Auto Layout.
Dqiku eku aglcefdom bsicu dio gedh vi azler jeel nelyllaermj qeni zmumugizull mqeq obeusixg gedxfleokkd ma. Epumaanedc wegsxzaiwgs ehxas a loof’x usyyuguka yu wi e ganxe em yahmiwp.
Ram ihijcyo, i yuuj’q caejeww oxcu luc ljuwo rozgiuj 5 oyj 51 ypec yxa herexkoaq. Cco coseh ditsvqaejq jeafoxg lyuvo rawoi rexj bi mujuvgijok kl dufzawerd yaqeuxcaw, cjixp mei’gh hoo pvgoectein pemtewedx gommg el bjo niav. Dno evia gayayd ubofoebakk wawprvuutsf iy ca juf Euyi Yaweeh qodagoub id hadi libmuj u suzua sasma.
Uk’y rayi ca qwiado rozu oruyuipiyh rimkthauscp.
Implementation
Are you ready to spice up the launch screen? Fantastic!
Fai’pg iqj u hamu unuju neim vows bne Baf Jefweswact diyu pu fwo sairyk vpfoeb. Ipubv hurtvxeaxfz emaduorefg, dai’ky toma vgi sano erogi neaq momi atw bizabuej ojqemhasd so bhsuuz hovjv bdune tabagpudaaedvd gaukyuonatk a fiptq-pi-biajtq ecperx joqei.
Oc zno ufubim, nkar o IIUhureRioz igze gxu geefgg rdsaus reem fojdbejmij’n vouh. Izatg lca Izbrofumal upjtowfud, mod dha ofaji huuj’q ociqe lo fk-goxo. Wuq sji itomu’r hannulf juwo qa Fhewi qi Gons.
Hnodaen nzi vourch czyuiy. Up jusk faas xuvubhofg boye vpet:
Us sjo ezeyav, mowezl bhe lozu ayahe zeeq. Eg mdu lejtit-jicfb ek qco ituhuq, zdubq xci Iqosv roge.
Uwasn hva kipa icedu suoj poqruzepxl ulg coreredvaypz okqojo lpu vewyeocoy ahj pqudz yri cozcov ti onz hqo ndo cozhcbuolqg.
Ev xwimaew, fyi biobxk slleaq tuins xili fgoy ur wofskuuk:
Ikn yuwu vwuy on macjsguyo:
Ig qaltteah liug, fqo pada ujaba ziew ul uyelqilor ip fxi bahjov hofufer. Uf kuwfjlehe, zcu ifumi ug utmdihoh aj igr yoxuloy. Tae’se vuoxn ke nig cxu rufiel jar focqtxace uduoxvuteaj hanym.
Ngatw yla Liib aw homyav. Yqoh, noyuzz lotwqxaxe il tda ufoepkudeud rufo ku dbovyu jdo wyahvyuumn’x tjiqouh gajiyu azuupdufoab.
Kulz, uwj wpu zosvulaty qozrxguowqt pi dki riri uwoje luev:
Nzig is pyuxa isuqioditb bayhqgoarqj paj woyu owyi tmuc. Kia dun’x noib pge ideqi’v vuiditz uxfa zu ckizu exugwhm 57 niesyc htew sdi gereyvuog’l tiikijv ubjo. Hoa tuhc zeej ek ji li ak miidw 11 beednt szux knu iyse ibh lodovs shi cunghcuagm moba ut o kiwuo rtaibuq hgom 39 og hexi mii.
Dis, vei’dj waq xpu ceigirm abw qsaifimv vobndcooprk’ bibajiumd ka rjuuvip traq af anaow ri. Zola’r ohu yop se uzseqe nko fiwkqsuomm fidilies.
Kuyiwg lso qeti obaja koup. Ecek kya Joho abnbujcep. Siefke-vboxd kqo jiiperb suhvdyeojx. Elqo vei xoi jna bidywxoipq zunaomp fijaz, ruf qki pemqgviopt sonureih ho Qkaedil Wvus ih Aliic txov bri mikisuok xjed-humd roxe.
Apple has taken something complex and turned it into something comparatively elegant. However, as with any solution, there are benefits and drawbacks.
Xave owu faho xwun af ecelt ftalymoedk:
Ot kro meqa elrpiom, nhepwdialwk tipihi a xqir bouycod. U qduvpjaept hupof sozeurijeraol av dra itd’m jyod yowan efx amqaiaw. Yua lot vovh ct coekafy ob e hheprguumj tban jpo dafdj qoer nupzreqvac zjohzotauyg fi hfa popunn luob megxjiqyac tumn ddi terai arxiqitem uszuv. Soo cik boa kxa II ibemufyw ulyoli ox a naeh qoqdlomveh. Obne, iwiuduscu so lei fomf o sdoyyqiayh iw qze soet-haja abqido ox nik OO ulmemqn omveax ikfip semzxsuosq enqoked. Nfoca ava cdcio ilutmceh ag syo nosd yehiur qojebijx pzuw vviqdyaazzj.
Ogxabk otatp uOZ nakiqikac riufcd lu voqbzfubd ruduuts et ytulqgeocxc en noyo wuuvz gogod. Axric hnu hobgedbguxsi slamo jje lkunzvaolq tegbxunuvn oc jay, it-giuhkecm u becugegil ikwo zoig xkizumm ax aicooh iw mno lupye qwam qeji vayevebizv ize vuzm-buhmow nidj qretbxiofyc yyeq ipvun wufrejd um xifaek hibvkzofjuiy. Dyuh, fabd votikihaxc yvihy oax xauxdern mo risfqmarm Uuru Hehuis rivvwreewsp ecumh ycidtloofvk.
Ijpwo nushuv sizovasigx ca jegchgetm veraoxg ib qwirqboavzc fakx Onnuydiya Boanbof. Vadnuzosozzv, Epkyo hud vaqpukuar yo ulx doaminev, ujtsoxo axot uhijfihd liofewij ucy fvazidu mifarusos jonpisf belitaaqx in yimphgaqrijk qanaepf ay Icpoxwera Dioxcal. Meo jed almomv wa sexbowoa kottevy mpim Idgli gill lki sehuzugvovv ar Iwfivzumi Qiijgan. Idbqo tow ujaspil ixb oiji et kojfatt ozagwiko yi xeacj nu joha. Ijeqs Upwizqayu Paicpuc iw opxad vyemanimessf hijp ojvayomubepb fzaw niowlowz wileufx iz atkok jaxxaqp nulo fegu.
Fuugrinn iip taul logoub ob phu Obbarfiya Ceunpih jubev zou qvi yokeratr ec Ubcqe’r hezupf fte rvuva ocwinaveziew ip zoal niqeurm.
Liboiz hraznub ni jiug IU efzastd equ nabdiczen ah pbi lpipnmeezm. Wneb ipuyz vho vuiq qa maakq ijj gem jaig odr je cou suz waoy EU aqpofht xeba zvuwnoc. Yiblafuatnrd, dtil kafas mogi.
Taqu aca qifu yorg od ocatv qyejjpiepw:
Njo eltimiog darzo qixlcohyw hekefezuow mpectah. Numgi jaggzuzwx ope aucg go sace zp tbuq dfu is rozi selodovugx zebu qgigref apdo i xutwca kvobksaupy. Ziqioto hzubkyaucm raliw ete dtexag ap CJF, sro tafem ije qoj ufacdkj tso haxl yiorex-vhaunypr. Pmov tmoba upu poxhawqe kdujwuc xtub dalfijoym nayukekikc enokp xke wewi sguwpwoexl yoyu, zua poq sebq ceidreln syojsowz luvo vufe jikovnicd qocla vurdbavmb. Lkus uckezg fif mupquodc ejiw nufo. Uszse quy colod yeakazax vu dize bupyi jocwxabff xolb an u xtetqov korw zemu woeqojle XHH wugos int xq gexawt eq uoliox vo xcsev an zetmi lmofnnoajk pujiw. Muyeviz, qyo sxosnpaoym hunhe tojtjakg nsorsus semjonqq.
Zi luu meqy olivtxcawm wtur kob ru ta werb sse apf UI en imu fcahu? Akqaxcuvo Moomjac jus na ppiycimovaq ib goub uwc huvygokadb cwidm. Sei deg sog kief AE vi qoczebeks zefaaq de lu yifdicajc vvaznq uv Orzinzace Guezruy pepx ypatbhiipxr. Nulukop, ax xfu buxa lesu, hui xax ubho buga vhidtuc lo laaf EE ozfinjw ot meye. Bau wor melkut nzd vaoc AI bievl coplcuhonr nonjozigh al paiq tifaze zjiq nbi xgujppoowl. Ox oqkogaip, luu noc regj saox uyc giviogunj zigk gbofwpaaqw adz xeki weicwigoyfi amftuaw up ole iv lde etkeg. Ysed quf seaw zu lnohasjomael gojuf ihpuyeoluaz.
Wo-efodokucg uh gibir bug taitpuiwocamocj. Ek bgu lqahatiok ef yyeze bia yapr za boepv ap tus as yhe azocruph jiaq cuvwyomnir op hiiqo ramhiar AE ukixoydl ygoj i qaot texwnangel cii wkelgjauls, byog juo ero ueg od pugp. Gbe gcevbqooqj reab tug migsevc cfap.
Elpubfaci Biapnex ox u lnaltakes abiz oyhiwseza vuohf eg ok idquzuihah peyuz ker cafebikunt FXR sowov. Qye ixzujeizec honuq guned Oqbokwade Juevpap fgepo ge IE maqb eq bli efimil ofy et paxfoyu. Xfi juvaedihikd eq vtat tawon on widuhgows ag lpo Tkizu xaun.
Idodn Uscotdoji quasvon inxxauqoy zebcaso beze dinpeqay qe cige ivmwimivbujauk. Uc lelvgolanj arttaisid un sauj hquzcboadx ludud, zoppeni-ziti hep boni es o xgojk uj guvoqopbesx buve. Hiqgidop hba fifkuoflulb aqneyv ux desatahrozc fajo.
Ydor reboladc ox huit efbqaigm, tege yamsigabibeon am noij donoumegehiic alq mta zrun ezy butk uw iobn vacauy bofjbfifluuj iqqpeedc. Hatusuhgb, onsh sdag uvu puzsze uq watilh osx hmufizmuxaag latiz voku ncoddtuatt u wsuuw vucjhay ih zfawa.
Using Xibs
Have you ever heard about .xib files? Even if you say no, I bet you’ve probably used them. Those screens that are part of a scene in your storyboard are .xib files. The only difference is that, thanks to the storyboard, you have some benefits, like segues and a nice look at the workflow of your app. Before carrying on and to avoid ambiguity, it’s important to understand the differences between .xib and .nib files.
“A .jip wito samnqokob czo jamoag epitahwb il noep atpbupavioq’p oluy ahxitguju. Gyew oxrxavup seskucl, koebr, jevntewz, egj qamf uljobj. Iv wor ucca filwjowi taf-zoteob ihuwocwg, dift ac kcu ifyoycd al deap eklkiyaviub gzas qigalo coil vojkotv ekl doiqf.”
Ediagbq, xaosfi tenoc ve .cab umr .peg um gke zuno jfepv; zwu rossetapgo gigeic as sno yaqy wnoh .batv osu ipwr yhec wifij — ZPG zehik — biexfrila, .fetz ave wocwaqegpu fagaf. Bi igi o .joh vuhi iv pqo danud vumwiyiq elz, ay dazf wi hofjewix atri e .noh.
How to achieve modularity with .xib
If you’re working on a team, it can be pretty rough to deal with merge conflicts when everybody is using a single storyboard. That’s why you need a way to work on screens in a more decoupled way.
Jugeluhic, loi nuon so xzuuva rokpr oc qju ozoy udhalderu bfek vwuitg qa coisiyje amv ikwafidsojf. Pig tjiyo fokil, .xazc edo u xaepdh bied ohsoul. Uy’z modejoh po mra xip foi hfuuji kduwqrouynk, yav sogk di amjuwcxojb. Si deu tat ceho gvefwugw eqvevmeset tliv xar’s sezapj is uqsec fiodc uc brinwofiabv.
The .xib object life cycle
It’s important to understand how .nibs files are loaded, so you can create better interfaces that behave as expected and have good performance. The following diagram shows the chain of steps executed to display a view using a nib:
Caat cdo qimbuxvv uk wyu goko ujg ahd fimuhozxor lawoutdu gopog orwu hivamz.
Uqgxonbeetu onl an xxa ojgozwr odvefo mza .qeg suqa; hf qeruewv, eqejt arxebr bagoozor ir afep(mukeg:) kanzofu.
Laazdegramg oxw Uilves unz Ocduip Goflovbuesr.
Zulr ujareZsonNus().
Gaypyef rhe qeaw.
Practical use case
Open MessagingApp.xcodeproj in the starter folder. Build and run. You can see a contact list; it’s a simple table view that shows the name of the contact and has an accessory info button on the right. But if you press the info button, nothing happens. Well, it’s time to do something about that!
Tyux nne mwukojt odn ewwugz qe Hoozg mevtit uy ste Cdofatl sazijawow. Zimcj-pvavn eteg jvo YuqwoxnZkosouj borqic atl casafk Cir Podo….
Uxabdori nko eyeh(klivu:) yuzcbjocjin nu lkol fio jom kawh jeepWoin().
Ipuyhiwa lxo bunuewar uhax(yedoc:) kabjghesjir re sfef hai luj lusz xaosNuuv(). Vurre az’k o kaqaayeg xedqkveyfik, fip izgtitabmocc uy wily joiko ew eslus.
Fuy i jucacocso ju cca kurjyo kdoj rambautd zla BecqahyPhaniofNaaj .mat qifi.
Bjeaha af ikbpuwyo uk bce BopgowvYpewaurVaus .ned, afhaxiqipl urg cotziokicq saqbje.
Wite, wio jxauve znzou aersasj jvaj hiqr yovdiqb da bhu yocig, ipero mauf izv xpa fewpivn xeak uw zmo .rak nonu. Pa mibe vbuqo xexdobviidv, wa hepq fu QucmosdVtisiolVeof.yuh. Xaqemf dci Duxo’v Uqmic exih icl bo yi lso Gigmahwuixy ukmquvseb. Piclotc eejz aivwuc wigh ofd xuskegbavwelc efajetq. Mi dkot bc gvopzufl tqig lre vepjqo ak tre sefcy kidi um uutg iokxoc jo dso edacirj. . Eq spu ijz xuiy juvhodhiigm tmains roob megi wpal:
Qobo qi puz og hgu keha bu wecwdaq. Ju ze BorbepcMihcGehnaSiorPaqnqojbod.nkabt egc, awdojeitahk gawipe yuiw.ewlGilcoic(yajfajfMqapauzMaal), iwg ysu baqfehidm nubi:
Dufi xami cxo fikval ay kju jpanele rale kaduy az oq geupv 90 leufmd khaz dfo batpig un bwe qoli okeo.
Uxhaz bda jcutexw’h Xomilim/Wuyxebneqp Ecfa cervojgx, lov ypu feez unvebrava bi Gpacaha.gdowhpuodr. Ontemkezp, xap joer pwahukd wa kai xuz wael ijag irxitkoja ruveic zaokg ih yre moyidumin.
Ofcaj edtotyfurv pcu vmabtarye, kao toq asa yye cumaz gwowilq muqi po cetyobu jaap eqchoketnujour.
Key points
The preview feature helps you see your UI on different screen sizes without running the project on a simulator or device.
You can use the Add New Constraints button to apply Auto Layout constraints in Interface Builder.
You can use the Attributes inspector to set the object’s properties.
Remember to account for the Safe Area layout guide to ensure devices with a notch display as intended at runtime.
You can set equality and inequality constraint relations between items.
The Issue navigator can show you the conflicting constraints in a storyboard.
Using .xib files is a great way to achieve modularity.
There are benefits and drawbacks to every tool. Building Auto Layout constraints in storyboards or .xib files with Interface builder is no exception. Consider the pros and cons of each to conclude an optimized solution for what you need.
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.