Sadržaj:

Kreiranje pomicanja pomoću Swifta: 9 koraka
Kreiranje pomicanja pomoću Swifta: 9 koraka

Video: Kreiranje pomicanja pomoću Swifta: 9 koraka

Video: Kreiranje pomicanja pomoću Swifta: 9 koraka
Video: 10 самых необходимых инструментов для деревообработки 2024, Juli
Anonim
Image
Image

Prije nekoliko mjeseci nisam znao da postoje Swift i Xcode. Danas sam uspio razviti mali dio aplikacije koju želim stvoriti. Uspio sam stvoriti nešto super, što bih želio podijeliti s vama.

U ovom vodiču ću vas provesti kroz proces izgradnje scene sa prikazom pomicanja, u kojoj će korisnici biti preusmjereni kada žele registrirati novi račun. Usput ću vam dati neka teoretska objašnjenja o stvarima koje radimo, tako da zaista možete shvatiti šta to radimo.

Prije nego što to učinimo, razgovarajmo o tome što su Swift i Xcode:

1. Swift je moćan i intuitivan programski jezik za macOS, iOS, watchOS i tvOS. Pisanje Swift koda je interaktivno i zabavno, sintaksa je jezgrovita, ali izražajna, a Swift uključuje moderne funkcije koje programeri vole. Swift kôd je siguran po dizajnu, ali također proizvodi softver koji radi munjevito. Dizajniran je za rad s Appleovim okvirima Cocoa i Cocoa Touch i velikim brojem postojećeg Objective-C koda napisanog za Apple proizvode. Napravljen je s otvorenim kodom LLVM kompajlera i uključen je u Xcode od verzije 6, objavljene 2014. Na Apple platformama koristi biblioteku vremena izvođenja Objective-C koja omogućava pokretanje C, Objective-C, C ++ i Swift koda u okviru jednog programa.

2. Xcode je integrirano razvojno okruženje (IDE) za macOS koje sadrži paket alata za razvoj softvera koje je razvila Apple za razvoj softvera za macOS, iOS, watchOS i tvOS.

Korak 1: Preuzmite Xcode

Rad u korisničkom interfejsu
Rad u korisničkom interfejsu

Xcode 10 uključuje sve što vam je potrebno za stvaranje nevjerojatnih aplikacija za sve Apple platforme. Sada Xcode i Instruments izgledaju sjajno u novom tamnom načinu rada na macOS Mojave. Uređivač izvornog koda omogućuje vam lakšu transformaciju ili preradu koda, pregled promjena izvorne kontrole uz odgovarajuću liniju i brzo dobivanje detalja o razlikama u uzvodnom kodu. Možete izgraditi vlastiti instrument s prilagođenom vizualizacijom i analizom podataka. Swift brže kompilira softver, pomaže vam u isporuci bržih aplikacija i generira još manje binarne datoteke. Testni paketi završavaju se mnogo puta brže, rad s timom je jednostavniji i sigurniji, i još mnogo toga.

Xcode 10 uključuje Swift 4.2, koji brže kompilira vaš softver, pomaže vam u isporuci bržih aplikacija i generira još manje binarne datoteke. U usporedbi sa Swift 4.0, najnoviji Swift kompajler može graditi velike aplikacije više nego dvostruko brže.* U kombinaciji s novim Xcode sistemom za novu gradnju, vaš svakodnevni tijek uređivanja, izgradnje i testiranja je mnogo brži. Optimizirani za najnoviji višejezgreni Mac hardver, Xcode i Swift čine munjevito brzu razvojnu platformu.

Korak 2: Počnimo

Image
Image

Ono što ćemo učiniti je otići na Xcode i kreirati novi projekt. Kada kliknemo na novi projekt, naša će aplikacija biti aplikacija za jedan prikaz. Za one koji ne znaju, aplikacija s jednim prikazom znači da ćete morati sve započeti ispočetka i da će postojati jedan jedini pogled koji možemo programirati.

Imenujte svoj proizvod TutorialApp. Ako ste iskusni programer koji objavljuje aplikacije u App Storeu, vjerojatno ćete imati tim, ali ako ste novi i nemate objavljenih aplikacija, ovo polje možete preskočiti. U naziv organizacije možete upisati naziv kompanije u slučaju da ga imate, u mom slučaju ja ću zadržati samo MacBook Pro. Zatim se identifikator organizacije smatra nečim poput jedinstvenog identifikatora vašeg projekta, pa možete napisati što god želite. Jezik će definitivno biti brz.

Dakle, pritisnite sljedeće i spremimo projekt na radnu površinu kako bi mu bilo lako pristupiti.

Novi projekt sastoji se od tri datoteke, AppDelegate.swift, ViewController.swift i zvjezdice ovog vodiča: Main.storyboard. Ispod Deployment Info> Device Orientation u općim postavkama projekta postavite Devices na iPhone. Budući da je ovo samo portretna aplikacija, poništite odabir opcija Pejzažni lijevi i pejzažni desni. Otvorite Main.storyboard u navigatoru projekta da biste ga vidjeli u Interface Buildereditor -u:

Nećemo napraviti nikakve promjene u konfiguraciji i idemo ravno na glavnu priču. Budući da smo napravili aplikaciju za jedan prikaz, stvorili smo jednostavan jedan jedini, prazan prikaz. Ovo je nešto na čemu moramo raditi.

Korak 3: Rad u korisničkom sučelju

Rad u korisničkom interfejsu
Rad u korisničkom interfejsu
Rad u korisničkom interfejsu
Rad u korisničkom interfejsu

Službena terminologija storyboard -a za kontroler pogleda je „scena“, ali termine možete koristiti naizmjenično. Scena predstavlja kontroler pogleda u storyboardu.

Ovdje vidite jedan kontroler prikaza koji sadrži prazan prikaz. Strelica koja pokazuje na kontroler pogleda s lijeve strane označava da je to početni kontroler prikaza koji će se prikazati za ovu priču. Dizajniranje izgleda u uređivaču storyboard-a vrši se povlačenjem kontrola iz biblioteke objekata (vidi gornji desni ugao) u kontroler prikaza.

Da biste stekli dojam o načinu rada uređivača storyboarda, povucite neke kontrole iz biblioteke objekata u kontroler praznog prikaza kako se vidi u videu.

Dok povlačite kontrole, one bi se trebale prikazati u Outline Document Outlineu s lijeve strane.

Možete stvoriti željeno korisničko sučelje. U mom slučaju, upotrijebio sam onaj koji vidite na slici.

Korak 4: Razvijte kontroler drugog pogleda i pokrenite segues (prijelaze)

Image
Image
Izgradite vodoravno prevlačenje stranice
Izgradite vodoravno prevlačenje stranice

Dakle, u mojoj aplikaciji, kada korisnik pritisne dugme "Registriraj novi račun", želim da bude preusmjeren na stranicu registrovanog računa. Tako da je u tu svrhu svaka stranica nova scena, novi prikaz. Iz tog razloga moramo stvoriti drugi kontroler prikaza koji možete pronaći u biblioteci objekata.

Upišite kontroler pogleda i postavite ga pored početnog kontrolera prikaza. Ova scena će biti odgovorna za kontroler prikaza registra. Preusmjeravanje na tu stranicu može se izvršiti na dva načina:

  1. to možemo učiniti ručno kada napravimo akcijsku vezu s gumba na drugu kontrolu prikaza
  2. možemo to učiniti programski

Ono što sam odabrao je da to napravim ručno. Jednostavno je tako:

  1. Pritisnite jedan lijevi klik na svoje dugme (u mom slučaju, registrujte novi račun)
  2. Držite naredbu i kliknite lijevim mišem da biste je prevukli na kontrolnu scenu registra.
  3. Otpustite ga tamo i odaberite "Modalno predstavi"

Korak 5: Kreirajte klasu programiranja za proces registracije

Dakle, sada želimo stvoriti namjensku klasu kodiranja za novu scenu.

Da biste to učinili, morate učiniti sljedeće:

  • desnim klikom na fasciklu vašeg projekta
  • kliknite na novu datoteku koja se zove klasa dodira kakaa
  • u razredu napišite: RegisterVC
  • VEOMA VAŽNO! Uvjerite se da potklasa mora biti tipa UIViewController
  • jezik mora biti brz.
  • kliknite sljedeći i spremite klasu kakaa u glavni korijen vašeg projekta.
  • Kliknite na glavnu ploču priča i idite na novi kontroler prikaza
  • kliknite na žuto dugme koje se nalazi iznad njega
  • s desne strane idite do inspektora klase i uputite se na Register VC (Costum class, class = RegisterVC

Korak 6: Izradite vodoravno prevlačenje stranice

U iOS -u se prikazi pomicanja koriste za prikaz sadržaja koji se neće potpuno uklopiti na ekran. Pogledi pomicanja imaju dvije glavne svrhe:

Omogućiti korisnicima povlačenje područja sadržaja koje žele prikazati, dopustiti korisnicima da povećavaju ili umanjuju prikazani sadržaj pomoću pokreta prstima. Uobičajena kontrola koja se koristi u iOS aplikacijama - UITableView - potklasa je UIScrollView i pruža odličan način za pregled sadržaja većeg od ekrana.

Šta koristi podstranice horizontalnim prevlačenjem?

Pa, ako bih stvorio 6 različitih stranica, to bi značilo da moram stvoriti posebnu klasu za svaku od njih, a nije tako zgodno prenositi podatke iz jedne klase u drugu. Kada, na primjer, upišem svoju e -poštu, a zatim kliknem na sljedeće, ako imam drugi kontroler prikaza, napustit ću prvu stranicu kontrolera pogleda, a zatim će se prikazati druga. U ovom slučaju, informacije o prvom kontroleru prikaza moraju se prenijeti na sljedeći, a zatim ponovo na treći kontroler prikaza itd. Kad budem imao sve kontrolere pregleda koji su mi potrebni, morat ću prikupiti sve podatke iz svih stranice i pošaljite ih na server. Dakle, ovo bi bilo zaista složeno.

Dakle, prelazeći na stvaranje ovog kontrolera prikaza, u mom slučaju, imao sam 5 stranica koje sam želio stvoriti:

  1. Email
  2. Puno ime
  3. Lozinka
  4. Datum rođenja
  5. Spol

To znači da kontroler pogleda koji ćemo stvoriti mora biti 5 puta veći od onog koji smo ranije napravili.

Odaberite kontroler prikaza i idite u gornji desni kut, kliknite ikonu ravnala i uredite simuliranu veličinu. Odabrat ćete Freeform kako biste prilagodili širinu i visinu. Zadana širina ekrana koja je pogodna za iPhone 8 je 375, pa ako pomnožim 375*5 = 1875. I evo, imate prošireni kontroler prikaza.

Slično, slijedite isti postupak za sve različite telefone i veličine ekrana.

Da bi prikaz pomicanja funkcionirao, potreban nam je objekt prikaza pomicanja. Scroll View pruža mehanizam za prikaz sadržaja koji je veći od veličine prozora aplikacije. Kliknite na ovaj objekt, povucite ga i postavite u gornji lijevi kut kontrolera pogleda i provjerite jesu li X i Y na nultim položajima, a rastezanje je u skladu s vašim kontrolerom prikaza.

Scroll View dozvoljava samo pomicanje, ništa drugo. Zatim moramo dodati prikaz sadržaja koji će pohraniti druge prikaze. UIView - on predstavlja pravokutnu regiju u kojoj crta i prima događaje - možete pronaći u biblioteci objekata. Jednostavno kliknite i povucite ga u prikaz pomicanja i još jednom ga rastegnite u skladu s tim.

Odaberite prikaz pomicanja s lijeve ploče i pozvat ćemo poravnanje 0, 0, 0, 0 i dodati ograničenja. Učinite isto za prikaz sadržaja.

Korak 7: Razvijte korisničko sučelje za podstranice horizontalnog prevlačenja

Image
Image
Implementirajte dizajn u Xcode
Implementirajte dizajn u Xcode

U ovom koraku morate stvoriti korisničko sučelje svojih podstranica. Ono što sam odabrao je napraviti prototip u Sketch -u, a zatim ga izgraditi u Xcode -u.

Korak 8: Implementirajte dizajn u Xcode

Implementirajte dizajn u Xcode
Implementirajte dizajn u Xcode
Implementirajte dizajn u Xcode
Implementirajte dizajn u Xcode

Sljedeći korak je implementacija ovog dizajna u Xcode. Da biste to učinili, morate stvoriti izlazne veze za sve podstranice i stvoriti drugu za "matični prikaz", što znači, jednu izlaznu vezu za cijeli kontroler prikaza.

Elementi u storyboardu povezani su s izvornim kodom. Važno je razumjeti odnos koji storyboard ima prema kodu koji pišete.

U storyboard -u, scena predstavlja jedan ekran sadržaja i obično jedan kontroler prikaza. Kontrolori prikaza implementiraju ponašanje vaše aplikacije i upravljaju jednim prikazom sadržaja s hijerarhijom podprikaza. Oni koordiniraju protok informacija između modela podataka aplikacije, koji sažima podatke aplikacije, i prikaza koji prikazuju te podatke, upravljaju životnim ciklusom prikaza njihovih sadržaja, upravljaju promjenama orijentacije prilikom rotiranja uređaja, definiraju navigaciju unutar vaše aplikacije, i implementirajte ponašanje kako biste odgovorili na unos korisnika. Svi objekti kontrolera pogleda u iOS -u su tipa UIViewController ili jedne od njegovih podklasa.

Ponašanje vaših kontrolera pogleda definirate u kodu stvaranjem i implementacijom prilagođenih potklasa kontrolora pogleda. Zatim možete stvoriti vezu između tih klasa i scena u storyboardu kako biste dobili ponašanje koje ste definirali u kodu i korisničko sučelje koje ste definirali u svojoj storyboardu.

Xcode je već stvorio jednu takvu klasu koju ste ranije pogledali, ViewController.swift, i povezao je sa scenom na kojoj radite u svojoj storyboardu. Kako budete dodavali još scena, ovu vezu ćete sami uspostaviti u inspektoru identiteta. Inspektor identiteta omogućuje vam uređivanje svojstava objekta u vašoj storyboardu koja se odnose na identitet tog objekta, poput klase kojoj objekt pripada.

Kreiranje utičnica za korisničko sučelje ElementsOutlets pružaju način referenciranja objekata sučelja-objekata koje ste dodali u storyboard-iz datoteka izvornog koda. Da biste stvorili utičnicu, pritisnite Control i povucite s određenog objekta u storyboardu u datoteku kontrolera prikaza. Ova operacija stvara svojstvo objekta u datoteci kontrolera prikaza, što vam omogućuje pristup i upravljanje tim objektom iz koda za vrijeme izvođenja

  1. Otvorite svoju storyboard, Main.storyboard.
  2. Kliknite gumb Asistent na alatnoj traci Xcode blizu gornjeg desnog kuta Xcodea da biste otvorili uređivač pomoćnika. Ako želite više prostora za rad, skupite navigator projekta i područje pomoćnih programa klikom na tipke Navigator i pomoćni programi na alatnoj traci Xcode.
  3. Također možete sažeti vanjski prikaz.

Na traci za odabir uređivača, koja se prikazuje pri vrhu uređivača pomoćnika, promijenite uređivač pomoćnika iz Pregleda u Automatski> ViewController.swift.

Kliknite na podstranicu i povucite je u odgovarajuću klasu koda.

Korak 9: Integrirajte prilagođene geste

Image
Image
Integrirajte prilagođene geste
Integrirajte prilagođene geste

GEST

Pokret prevlačenja događa se kada korisnik pomiče jedan ili više prstiju po ekranu u određenom vodoravnom ili okomitom smjeru. Koristite klasu UISwipeGestureRecognizer za otkrivanje pokreta pokreta.

Implementacija gesta prevlačenja

Korak 1: Dodajte pokrete prevlačenja u metodu viewDidLoad ()

nadjačati funkc viewDidLoad () {super.viewDidLoad ()

neka swipeLeft = UISwipeGestureRecognizer (cilj: self, akcija: #selector (handleGesture)) swipeLeft.direction =.left self.view.addGestureRecognizer (swipeLeft)

neka swipeRight = UISwipeGestureRecognizer (cilj: self, akcija: #selector (handleGesture)) swipeRight.direction =.right self.view.addGestureRecognizer (swipeRight)

neka swipeUp = UISwipeGestureRecognizer (cilj: self, akcija: #selector (handleGesture)) swipeUp.direction =.up self.view.addGestureRecognizer (swipeUp)

neka swipeDown = UISwipeGestureRecognizer (cilj: self, akcija: #selector (handleGesture)) swipeDown.direction =.down self.view.addGestureRecognizer (swipeDown)}

Korak 2: Provjerite detekciju gesta u handleGesture () metodi func handleGesture (pokret: UISwipeGestureRecognizer) -> Void {if gesture.direction == UISwipeGestureRecognizerDirection.right {print ("Prevucite desno")} else if gesture.directreregection = URedirection = URedirection = URDirectionDirection = URDirectionDirectionDirectionDirectionDirectionDirection lijevo {print ("Prevucite lijevo")} inače ako je gesture.direction == UISwipeGestureRecognizerDirection.up {print ("Prevucite gore")} inače ako je gesture.direction == UISwipeGestureRecognizerDirection.down {print ("Prevucite prema dolje")}}

U svojoj sam aplikaciji htio koristiti swipeRight, ali nisam mogao koristiti onu koja je prikladnija za vašu aplikaciju.

Sada, implementirajmo ovo u naš kod.

Idemo na registerVC.swift koji smo već stvorili i pišemo kôd kao što vidite na slikama.

OBJAŠNJENJE KODEKSA

neka current_x dobije trenutnu poziciju ScrollView -a (horizontalni položaj) neka screen_width dobije širinu ekrana, oduzme ovu veličinu neka new_x od trenutne pozicije scrollview -a, vraćam se po širini ekrana ako current_x> 0 sve dok nije više od 0 - 0 je prva stranica.

I gotovi smo!

Bravo momci!

Preporučuje se: