Talaan ng mga Nilalaman:

Lumikha ng isang View ng Scroll Sa Swift: 9 Mga Hakbang
Lumikha ng isang View ng Scroll Sa Swift: 9 Mga Hakbang

Video: Lumikha ng isang View ng Scroll Sa Swift: 9 Mga Hakbang

Video: Lumikha ng isang View ng Scroll Sa Swift: 9 Mga Hakbang
Video: ℹ️ DONT UPLOAD REELS | COMMON MISTAKES OF SMALL REELS CREATORS | WAG KA MUNA MAG UPLOAD NG REELS! ℹ️ 2024, Hulyo
Anonim
Image
Image

Ilang buwan na ang nakakaraan, hindi ko alam ang pagkakaroon ng matulin at Xcode. Ngayon, nagawa kong bumuo ng isang maliit na bahagi ng application na nais kong likhain. Nakapaglikha ako ng isang bagay na cool, na nais kong ibahagi sa iyo.

Sa tutorial na ito, dadalhin ka namin sa proseso ng pagbuo ng isang tanawin ng scroll view, kung saan ang mga gumagamit ay mai-redirect kapag nais nilang magparehistro ng isang bagong account. Sa daan, sisiguraduhin kong magbigay sa iyo ng ilang mga teoretikal na paliwanag ng mga bagay na ginagawa namin, upang maunawaan mo talaga kung ano ang ginagawa namin.

Bago natin ito gawin, pag-usapan natin ang tungkol sa kung ano ang Swift at Xcode:

1. Ang matulin ay isang malakas at madaling maunawaan na wika ng programa para sa macOS, iOS, watchOS at tvOS. Ang pagsulat ng Swift code ay interactive at masaya, ang syntax ay maikli ngunit nagpapahiwatig, at ang Swift ay nagsasama ng mga modernong tampok na gusto ng mga developer. Ang Swift code ay ligtas sa pamamagitan ng disenyo, ngunit gumagawa din ng software na tumatakbo nang mabilis. Dinisenyo ito upang gumana sa mga framework ng Cocoa at Cocoa Touch ng Apple at ang malaking katawan ng mayroon nang Objective-C code na nakasulat para sa mga produktong Apple. Ito ay binuo gamit ang bukas na mapagkukunan ng LLVM compiler framework at isinama sa Xcode mula noong bersyon 6, na inilabas noong 2014. Sa mga platform ng Apple, ginagamit nito ang library ng runtime ng Objective-C na nagpapahintulot sa C, Objective-C, C ++ at Swift code na tumakbo sa loob ng isang programa.

2. Ang Xcode ay isang integrated development environment (IDE) para sa macOS na naglalaman ng isang suite ng mga tool sa pag-unlad ng software na binuo ng Apple para sa pagbuo ng software para sa macOS, iOS, watchOS, at tvOS.

Hakbang 1: Mag-download ng Xcode

Nagtatrabaho sa UI
Nagtatrabaho sa UI

Kasama sa Xcode 10 ang lahat ng kailangan mo upang lumikha ng mga kamangha-manghang mga app para sa lahat ng mga platform ng Apple. Ngayon ang Xcode at Mga Instrumento ay mukhang mahusay sa bagong Madilim na Mode sa macOS Mojave. Hinahayaan ka ng editor ng source code na ibahin ang anyo mo o mas mahusay ang code ng refactor, tingnan ang mga pagbabago sa pagkontrol ng mapagkukunan sa tabi ng nauugnay na linya, at mabilis na makakuha ng mga detalye sa mga pagkakaiba sa upstream code. Maaari kang bumuo ng iyong sariling instrumento gamit ang pasadyang visualization at pagtatasa ng data. Ang mabilis na pag-compile ng software ay mas mabilis, tumutulong sa iyong maghatid ng mas mabilis na mga app, at bumubuo ng kahit na mas maliit na mga binary. Ang mga test suite ay kumpleto nang maraming beses nang mas mabilis, ang pagtatrabaho sa isang koponan ay mas simple at mas ligtas, at higit pa.

Kasama sa Xcode 10 ang Swift 4.2, na mas mabilis na nag-iipon ng iyong software, tumutulong sa iyong maghatid ng mas mabilis na mga app, at bumubuo ng mas maliit na mga binary. Kung ikukumpara sa Swift 4.0, ang pinakabagong tagatala ng Swift ay maaaring bumuo ng malalaking apps nang higit sa dalawang beses nang mas mabilis. * Pagsama sa bagong Xcode bagong build system, ang iyong pang-araw-araw na pag-edit, pagbuo, at pagsubok ng daloy ng trabaho ay mas mabilis. Na-optimize para sa pinakabagong multi-core Mac hardware, Xcode at Swift na ginawa para sa isang mabilis na pag-unlad na platform.

Hakbang 2: Magsimula Na Tayo

Image
Image

Kaya kung ano ang gagawin namin ay pumunta sa Xcode at lumikha ng isang bagong proyekto. Kapag na-click namin ang isang bagong proyekto ang aming application ay magiging isang solong view app. Para sa mga hindi nakakaalam, ang isang solong view app ay nangangahulugang kakailanganin mong simulan ang lahat mula sa simula at magkakaroon ng isang solong pagtingin na maaari naming mai-program.

Pangalanan ang iyong produkto na TutorialApp. Kung ikaw ay isang may karanasan na developer na naglalathala ng mga app sa App Store marahil ay magkakaroon ka ng isang koponan, ngunit kung bago ka at wala kang anumang na-publish na mga application, maaari mong laktawan ang larangan na ito. Sa pangalan ng samahan, maaari mong isulat ang pangalan ng kumpanya kung sakaling mayroon kang isa, sa aking kaso ay itatago ko lamang ang MacBook Pro. Pagkatapos, ang Organizer Identifier ay isinasaalang-alang bilang isang bagay tulad ng isang natatanging identifier ng iyong proyekto, samakatuwid, maaari mong isulat ang anumang nais mo. Ang wika ay tiyak na magiging mabilis.

Kaya, pindutin ang susunod at i-save natin ang proyekto sa desktop upang madali itong ma-access.

Ang bagong proyekto ay binubuo ng tatlong mga file, AppDelegate.swift, ViewController.swift, at ang bituin ng tutorial na ito: Main.storyboard. Sa ilalim ng Impormasyon sa Pag-deploy> Orientasyon ng Device sa mga pangkalahatang setting ng proyekto, itakda ang Mga Device sa iPhone. Dahil ito ay isang potograpiya lamang na app, alisan ng check ang mga pagpipilian sa Landscape Leftand Landscape na pagpipilian. Buksan ang Main.storyboard sa navigator ng proyekto upang matingnan ito sa Interface Buildereditor:

Hindi kami gagawa ng anumang mga pagbabago sa pagsasaayos at dumiretso kami sa pangunahing storyboard. Dahil gumawa kami ng isang solong view app, gumawa kami ng isang solong solong, blangko, tingnan. Ito ay isang bagay na kailangan nating pagtrabaho.

Hakbang 3: Nagtatrabaho sa UI

Nagtatrabaho sa UI
Nagtatrabaho sa UI
Nagtatrabaho sa UI
Nagtatrabaho sa UI

Ang opisyal na terminolohiya ng storyboard para sa isang view controller ay "eksena", ngunit maaari mong gamitin ang mga term na palitan. Ang isang eksena ay kumakatawan sa isang view controller sa storyboard.

Makikita mo rito ang isang solong view controller na naglalaman ng isang walang laman na pagtingin. Ang arrow na tumuturo sa view controller mula sa kaliwa ay nagpapahiwatig na ito ang paunang view controller upang maipakita para sa storyboard na ito. Ang pagdidisenyo ng isang layout sa editor ng storyboard ay ginagawa sa pamamagitan ng pag-drag ng mga kontrol mula sa Object Library (tingnan ang kanang sulok sa kanan) papunta sa iyong view controller.

Upang makaramdam kung paano gumagana ang editor ng storyboard, i-drag ang ilang mga kontrol mula sa Object Library papunta sa blangkong view controller tulad ng nakikita sa video.

Tulad ng pag-drag mo sa mga kontrol, dapat silang magpakita sa Balangkas ng Dokumento sa kaliwa.

Maaari mong likhain ang User Interface na gusto mo. Sa aking kaso, ginamit ko ang nakikita mo sa larawan.

Hakbang 4: Bumuo ng isang Pangalawang Controller at Magsimula ng Mga Segue (mga paglilipat)

Image
Image
Buuin ang Pahalang na Pag-swipe ng Pahina
Buuin ang Pahalang na Pag-swipe ng Pahina

Kaya, sa aking app, kapag pinindot ng gumagamit ang pindutang "Magrehistro ng Bagong Account", nais kong mai-redirect siya sa pahina ng rehistro ng account. Kaya't para sa hangaring iyon, ang bawat solong pahina ay isang bagong eksena, isang bagong pagpapakita. Para sa kadahilanang iyon, kailangan naming lumikha ng isang pangalawang view controller, na maaari mong makita sa object library.

I-type ang view controller at ilagay ito sa tabi ng iyong paunang view controller. Magiging responsable ang eksenang ito para sa control view ng rehistro. Ang pag-redirect sa pahinang iyon ay maaaring gawin sa dalawang paraan:

  1. magagawa natin ito nang manu-mano kapag gumawa kami ng isang koneksyon sa pagkilos mula sa pindutan hanggang sa iba pang kontrol sa pagtingin
  2. magagawa natin ito sa programatically

Ang pinili kong gawin ay gawin itong manu-mano. Ito ay simple tulad nito:

  1. Gumawa ng isang kaliwang pag-click sa iyong pindutan (sa aking kaso, Magrehistro ng Bagong Account)
  2. Pindutin nang matagal ang pag-click at kaliwang pag-click sa mouse upang i-drag ito sa rehistro ng kontrol ng rehistro.
  3. Bitawan ito doon at piliin ang "Kasalukuyang Modally"

Hakbang 5: Lumikha ng Klase ng Programming para sa Proseso ng Pagrehistro

Kaya, ngayon nais naming lumikha ng isang nakalaang klase ng pag-encode para sa bagong eksena.

Upang magawa ito kailangan mong gawin ang mga sumusunod na hakbang:

  • mag-right click sa iyong folder ng proyekto
  • mag-click sa bagong file na tinatawag na cocoa touch class
  • sa klase sumulat: MagrehistroVC
  • NAPAKA IMPORTANTE! Siguraduhin na ang subclass ay dapat na uri ng UIViewController
  • wika ay dapat na mabilis.
  • i-click ang susunod at i-save ang iyong klase ng kakaw sa loob ng pangunahing ugat ng iyong proyekto.
  • Mag-click sa pangunahing storyboard at pumunta sa bagong view controller
  • mag-click sa dilaw na pindutan na nakalagay sa itaas nito
  • sa kanan pumunta sa inspektor ng klase at gumawa ng isang sanggunian sa Magrehistro VC (klase ng Costum, klase = MagrehistroVC

Hakbang 6: Buuin ang Pahalang na Pag-swipe ng Pahina

Sa iOS, ginagamit ang mga view ng scroll upang matingnan ang nilalaman na hindi ganap na magkakasya sa screen. Ang mga view ng scroll ay mayroong dalawang pangunahing layunin:

Upang hayaan ang mga gumagamit na i-drag ang lugar ng nilalamang nais nilang ipakita, upang hayaan ang mga gumagamit na mag-zoom in o labas ng ipinakitang nilalaman gamit ang mga kilos na kurot. Isang karaniwang kontrol na ginamit sa mga iOS app - UITableView - ay isang subclass ng UIScrollView at nagbibigay ng isang mahusay na paraan upang matingnan ang nilalaman na mas malaki sa screen.

Ano ang gumagamit ng mga sub-page sa isang pahalang na mag-swipe?

Kaya, kung lumikha ako ng 6 na magkakaibang mga pahina, nangangahulugan ito na kailangan kong lumikha ng isang nakalaang klase para sa bawat isa sa kanila at hindi ganoon kadali na ipasa ang impormasyon mula sa isang klase patungo sa isa pa. Kapag halimbawa ang nai-type ko ang aking email at pagkatapos ay nag-click sa susunod, kung mayroon akong ibang view controller, iiwan ko ang unang pahina ng View Controller at pagkatapos ay ipapakita ang pangalawa. Sa kasong ito, ang impormasyon ng unang view controller, dapat na maipasa sa susunod at pagkatapos ay muli sa pangatlong view controller atbp Kapag mayroon ako ng lahat ng mga view control na kailangan ko, kakailanganin kong kolektahin ang lahat ng data mula sa lahat ang mga pahina at ipadala ang mga ito sa server. Kaya, ito ay talagang kumplikado.

Kaya, sa paglipat sa paglikha ng view control na ito, sa aking kaso, mayroon akong 5 mga pahina na nais kong likhain:

  1. Email
  2. Buong pangalan
  3. Password
  4. Araw ng kapanganakan
  5. Kasarian

Nangangahulugan ito, na ang view controller na gagawin namin, ay dapat na 5 beses na mas malaki kaysa sa ginawa namin dati.

Piliin ang iyong view controller at pumunta sa tuktok, kanang sulok at mag-click sa icon ng pinuno at i-edit ang Simulate na Laki. Pipili ka ng Freeform upang maiayos ang lapad at taas. Ang default na lapad ng screen na angkop para sa iphone 8 ay 375, kaya't kung dumami ako ng 375 * 5 = 1875. At narito ka, mayroon kang isang pinalawak na view controller.

Katulad nito, sinusunod mo ang parehong proseso para sa lahat ng iba't ibang mga telepono at laki ng screen.

Upang mapagana ang pag-scroll view, kailangan namin ng isang object ng scroll view. Nagbibigay ang Scroll View ng isang mekanismo upang maipakita ang nilalaman na mas malaki kaysa sa laki ng window ng application. Mag-click sa bagay na ito, i-drag ito at ilagay ito sa kaliwang sulok sa tuktok ng view controller at tiyakin na ang X at Y ay nasa mga zero na posisyon at ang kahabaan ay naaayon sa iyong view controller.

Pinapayagan lamang kami ng Scroll View na mag-scroll, wala nang iba pa. Pagkatapos ay kailangan naming magdagdag ng isang view ng nilalaman, na kung saan ay magtatago ng iba pang mga view. Maaari mong makita ang UIView - kumakatawan ito sa isang hugis-parihaba na rehiyon kung saan ito kumukuha at tumatanggap ng mga kaganapan - sa object library. Simple lang, i-click at i-drag ito sa view ng scroll at muli, iunat ito nang naaayon.

Piliin ang view ng scroll mula sa kaliwang panel at tatawagan namin ang pagkakahanay 0, 0, 0, 0 at magdagdag ng mga hadlang. Gawin ang parehong bagay para sa pagtingin sa nilalaman.

Hakbang 7: Paunlarin ang User Interface para sa mga Sub-page ng Horizontal Swipe

Image
Image
Ipatupad ang Disenyo sa Xcode
Ipatupad ang Disenyo sa Xcode

Sa hakbang na ito, kailangan mong likhain ang UI ng iyong mga sub-page. Ang pinili kong gawin, ay gumawa ng isang prototype sa Sketch at pagkatapos ay itayo ito sa Xcode.

Hakbang 8: Ipatupad ang Disenyo sa Xcode

Ipatupad ang Disenyo sa Xcode
Ipatupad ang Disenyo sa Xcode
Ipatupad ang Disenyo sa Xcode
Ipatupad ang Disenyo sa Xcode

Ang susunod na hakbang ay ipatupad ang disenyo na ito sa Xcode. Upang magawa ito, kailangan mong lumikha ng mga koneksyon sa outlet para sa lahat ng mga sub-page at lumikha ng isa pa para sa "pagtingin sa ina", ibig sabihin, isang koneksyon sa outlet para sa buong view controller.

Ang mga elemento sa isang storyboard ay naka-link sa source code. Mahalagang maunawaan ang ugnayan ng isang storyboard sa code na iyong sinusulat.

Sa isang storyboard, kumakatawan ang isang eksena sa isang screen ng nilalaman at karaniwang isang view controller. Ipinapakita ng mga taga-kontrol ang pag-uugali ng iyong app at namamahala ng isang solong pagtingin sa nilalaman kasama ang hierarchy ng mga subview nito. Iniuugnay nila ang daloy ng impormasyon sa pagitan ng modelo ng data ng app, na nagpapaloob sa data ng app, at ng mga panonood na nagpapakita ng data na iyon, pinamamahalaan ang ikot ng buhay ng kanilang mga view ng nilalaman, pinangangasiwaan ang mga pagbabago sa oryentasyon kapag pinaikot ang aparato, tukuyin ang pag-navigate sa loob ng iyong app, at ipatupad ang pag-uugali upang tumugon sa pag-input ng gumagamit. Lahat ng mga view ng object object sa iOS ay uri ng UIViewController o isa sa mga subclass nito.

Tinutukoy mo ang pag-uugali ng iyong mga kontrol sa view sa code sa pamamagitan ng paglikha at pagpapatupad ng mga subclass ng pasadyang view ng pasadya. Maaari ka ring lumikha ng isang koneksyon sa pagitan ng mga klase at eksenang iyon sa iyong storyboard upang makuha ang pag-uugali na tinukoy mo sa code at ang interface ng gumagamit na tinukoy mo sa iyong storyboard.

Nakalikha na ang Xcode ng isang ganoong klase na tiningnan mo nang mas maaga, ViewController.swift, at ikinonekta ito sa tanawin na iyong ginagawa sa iyong storyboard. Sa pagdaragdag mo ng higit pang mga eksena, gagawin mo mismo ang koneksyon na ito sa inspektor ng Identity. Hinahayaan ka ng inspektor ng Identity na mag-edit ng mga katangian ng isang bagay sa iyong storyboard na nauugnay sa pagkakakilanlan ng bagay na iyon, tulad ng kung anong klase kabilang ang object.

Lumikha ng Mga Outlet para sa Mga Elemento ng UI Ang mga outlet ay nagbibigay ng isang paraan upang mag-refer ng mga object ng interface-ang mga bagay na idinagdag mo sa iyong storyboard-mula sa mga file ng source code. Upang lumikha ng isang outlet, Control-drag mula sa isang partikular na bagay sa iyong storyboard patungo sa isang view file ng controller. Lumilikha ang operasyong ito ng isang pag-aari para sa object sa iyong view controller file, na hinahayaan kang ma-access at manipulahin ang bagay na iyon mula sa code sa runtime

  1. Buksan ang iyong storyboard, Main.storyboard.
  2. I-click ang pindutan ng Assistant sa toolbar ng Xcode malapit sa kanang sulok sa itaas ng Xcode upang buksan ang editor ng katulong. Kung nais mo ng mas maraming puwang upang gumana, pagbagsak ng proyekto ng navigator at utility area sa pamamagitan ng pag-click sa mga pindutan ng Navigator at Mga Utility sa toolbar ng Xcode.
  3. Maaari mo ring pagbagsak ng outline view.

Sa bar ng tagapili ng editor, na lilitaw sa tuktok ng katulong na editor, baguhin ang katulong na editor mula sa Preview sa Awtomatiko> ViewController.swift.

I-click ang sub-pahina at i-drag sa naaangkop na klase sa code.

Hakbang 9: Isama ang Mga Pasadyang Kilos

Image
Image
Isama ang Mga Pasadyang Kilos
Isama ang Mga Pasadyang Kilos

SWIPE GESTURE

Ang isang kilos na mag-swipe ay nangyayari kapag ang gumagamit ay gumagalaw ng isa o higit pang mga daliri sa buong screen sa isang tukoy na pahalang o patayong direksyon. Gamitin ang klase ng UISwipeGestureRecognizer upang makita ang kilos ng pag-swipe.

Pagpapatupad ng kilos na mag-swipe

Hakbang 1: Magdagdag ng mga swipe na (Mga) Kilos sa viewDidLoad () na pamamaraan

i-override ang func viewDidLoad () {super.viewDidLoad ()

hayaan ang swipeLeft = UISwipeGestureRecognizer (target: sarili, pagkilos: #selector (handleGesture)) swipeLeft.direction =.left self.view.addGestureRecognizer (swipeLeft)

hayaan ang swipeRight = UISwipeGestureRecognizer (target: sarili, pagkilos: #selector (handleGesture)) swipeRight.direction =. Right self.view.addGestureRecognizer (swipeRight)

hayaan ang swipeUp = UISwipeGestureRecognizer (target: sarili, pagkilos: #selector (handleGesture)) swipeUp.direction =.up self.view.addGestureRecognizer (swipeUp)

let swipeDown = UISwipeGestureRecognizer (target: self, action: #selector (handleGesture)) swipeDown.direction =.down self.view.addGestureRecognizer (swipeDown)}

Hakbang 2: Suriin ang pagtuklas ng kilos sa handleGesture () na paraan func handleGesture (kilos: UISwipeGestureRecognizer) -> I-void {kung gesture.direction == UISwipeGestureRecognizerDirection. Right {print ("Swipe Right")} pa kung gesture.direction == UISwipeGestureRecognizer. kaliwa {print ("Swipe Left")} iba pa kung gesture.direction == UISwipeGestureRecognizerDirection.up {print ("Swipe Up")} pa kung gesture.direction == UISwipeGestureRecognizerDirection.down {print ("Swipe Down")}}

Sa aking app, nais kong gumamit ng swipeRight, ngunit nahulog nang malaya upang magamit ang isa na mas naaangkop para sa iyong aplikasyon.

Ngayon, ipatupad natin ito sa aming code.

Pumunta kami sa registerVC.swift na nilikha namin dati at isulat ang code na nakikita mo sa mga larawan.

PAGLALAHAD NG CODE

hayaan ang kasalukuyang_x pagkuha ng kasalukuyang posisyon ng ScrollView (pahalang na posisyon) hayaan ang screen_width na makuha ang lapad ng screen, ibabawas ang laki na ito hayaan new_x mula sa kasalukuyang posisyon ng scrollview, bumalik ako sa pamamagitan ng lapad ng screen kung current_x> 0 hanggang maliban kung ito ay higit sa 0 - 0 ang unang pahina.

At tapos na tayo!

Magaling mga kasama!

Inirerekumendang: