Turinys:

Sukurkite slinkties vaizdą naudodami „Swift“: 9 žingsniai
Sukurkite slinkties vaizdą naudodami „Swift“: 9 žingsniai

Video: Sukurkite slinkties vaizdą naudodami „Swift“: 9 žingsniai

Video: Sukurkite slinkties vaizdą naudodami „Swift“: 9 žingsniai
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Liepa
Anonim
Image
Image

Prieš kelis mėnesius aš nežinojau, kad egzistuoja „swift“ir „Xcode“. Šiandien galėjau sukurti nedidelę norimos sukurti programos dalį. Galėjau sukurti kažką įdomaus, kuriuo norėčiau pasidalinti su jumis.

Šioje pamokoje aš jus supažindinsiu su slinkties peržiūros scenos kūrimo procesu, kuriame vartotojai bus nukreipti, kai jie nori užregistruoti naują paskyrą. Pakeliui būtinai pateiksiu keletą teorinių mūsų veiksmų paaiškinimų, kad galėtumėte iš tikrųjų suprasti, ką mes darome.

Prieš tai darydami pakalbėkime apie tai, kas yra „Swift“ir „Xcode“:

1. „Swift“yra galinga ir intuityvi programavimo kalba, skirta „MacOS“, „iOS“, „watchOS“ir „TVOS“. „Swift“kodo rašymas yra interaktyvus ir įdomus, sintaksė glausta, tačiau išraiškinga, o „Swift“apima modernias kūrėjų mėgstamas funkcijas. „Swift“kodas yra saugus, tačiau taip pat sukuria programinę įrangą, kuri veikia žaibiškai. Jis sukurtas dirbti su „Apple“kakavos ir „Cocoa Touch“sistemomis ir dideliu esamo „Objective-C“kodo, parašyto „Apple“gaminiams, rinkiniu. Jis sukurtas naudojant atvirojo kodo LLVM kompiliatoriaus sistemą ir buvo įtrauktas į „Xcode“nuo 6 versijos, išleistos 2014 m. „Apple“platformose ji naudoja „Objective-C“vykdymo laiko biblioteką, kuri leidžia paleisti C, „Objective-C“, „C ++“ir „Swift“kodus per vieną programą.

2. „Xcode“yra integruota „MacOS“kūrimo aplinka (IDE), kurioje yra „Apple“sukurtas programinės įrangos kūrimo įrankių rinkinys, skirtas programinei įrangai, skirtai „MacOS“, „iOS“, „watchOS“ir „tvOS“, kurti.

1 veiksmas: atsisiųskite „Xcode“

Darbas UI
Darbas UI

„Xcode 10“apima viską, ko reikia norint sukurti nuostabias programas visoms „Apple“platformoms. Dabar „Xcode“ir „Instruments“puikiai atrodo naujame „MacOS Mojave“tamsiame režime. Šaltinio kodo rengyklė leidžia lengviau konvertuoti ar redaguoti kodą, matyti šaltinio valdymo pakeitimus kartu su susijusia eilute ir greitai gauti išsamią informaciją apie ankstesnio kodo skirtumus. Galite sukurti savo instrumentą naudodami pasirinktinę vizualizaciją ir duomenų analizę. „Swift“greičiau surenka programinę įrangą, padeda pristatyti greitesnes programas ir sukuria dar mažesnius dvejetainius failus. Bandymų paketai baigiami daug kartų greičiau, darbas su komanda yra paprastesnis ir saugesnis ir dar daugiau.

„Xcode 10“apima „Swift 4.2“, kuri greičiau sukomplektuoja jūsų programinę įrangą, padeda pateikti greitesnes programas ir sukuria dar mažesnius dvejetainius failus. Palyginti su „Swift 4.0“, naujausias „Swift“kompiliatorius gali sukurti dideles programas daugiau nei du kartus greičiau.* Kartu su nauja „Xcode“naujo kūrimo sistema jūsų kasdienis redagavimo, kūrimo ir bandymo procesas vyksta daug greičiau. „Xcode“ir „Swift“, optimizuoti naujausiai kelių branduolių „Mac“aparatinei įrangai, sukuria žaibišką kūrimo platformą.

2 žingsnis: pradėkime

Image
Image

Taigi mes eisime į „Xcode“ir sukursime naują projektą. Kai spustelėsime naują projektą, mūsų programa bus vieno rodinio programa. Tiems, kurie nežino, vieno rodinio programa reiškia, kad turėsite viską pradėti nuo nulio ir kad bus vienas vaizdas, kurį galime užprogramuoti.

Pavadinkite savo produktą „TutorialApp“. Jei esate patyręs kūrėjas, kuris skelbia programas „App Store“, tikriausiai turėsite komandą, tačiau jei esate naujas ir nepaskelbėte jokių programų, galite praleisti šį lauką. Organizacijos pavadinime galite parašyti įmonės pavadinimą, jei tokį turite, mano atveju aš tik pasiliksiu „MacBook Pro“. Tada organizacijos identifikatorius laikomas kažkuo panašiu į unikalų jūsų projekto identifikatorių, todėl galite rašyti ką tik norite. Kalba tikrai bus greita.

Taigi, paspauskite „Kitas“ir išsaugokime projektą darbalaukyje, kad jį būtų lengva pasiekti.

Naująjį projektą sudaro trys failai: „AppDelegate.swift“, „ViewController.swift“ir šios pamokos žvaigždė: „Main.storyboard“. Bendrųjų projekto nustatymų skiltyje „Diegimo informacija“> „Įrenginio orientacija“nustatykite „Įrenginiai“į „iPhone“. Kadangi tai tik portreto programa, atžymėkite parinktis „Landscape Leftand Landscape Right“. Atidarykite „Main.storyboard“projekto navigatoriuje, kad pamatytumėte jį „Interface Buildereditor“:

Mes nesiimsime jokių konfigūracijos pakeitimų ir eisime tiesiai prie pagrindinės siužetinės linijos. Kadangi sukūrėme vieno rodinio programą, sukūrėme paprastą vieną tuščią vaizdą. Prie to turime dirbti.

3 žingsnis: darbas UI

Darbas UI
Darbas UI
Darbas UI
Darbas UI

Oficiali vaizdų valdiklio siužetinės linijos terminologija yra „scena“, tačiau šias sąvokas galite naudoti pakaitomis. Scena vaizduoja siužetinės linijos vaizdo valdiklį.

Čia matote vieną vaizdo valdiklį, kuriame yra tuščias vaizdas. Rodyklė, nukreipta į rodinio valdiklį iš kairės, rodo, kad tai yra pradinis šios siužetinės linijos rodinys. Maketo kūrimas siužetinės linijos redaktoriuje atliekamas traukiant valdiklius iš objektų bibliotekos (žr. Viršutiniame dešiniajame kampe) į rodinio valdiklį.

Jei norite pajusti, kaip veikia siužetinės knygos redaktorius, vilkite kai kuriuos valdiklius iš objektų bibliotekos į tuščio vaizdo valdiklį, kaip parodyta vaizdo įraše.

Kai vilkite valdiklius, jie turėtų būti rodomi kairėje esančioje dokumento struktūroje.

Galite sukurti norimą vartotojo sąsają. Mano atveju naudojau tą, kurį matote paveikslėlyje.

4 veiksmas: sukurkite antrojo rodinio valdiklį ir inicijuokite segus (perėjimus)

Image
Image
Sukurkite horizontalų puslapio braukimą
Sukurkite horizontalų puslapio braukimą

Taigi, mano programoje, kai vartotojas paspaudžia mygtuką „Užregistruoti naują paskyrą“, noriu, kad jis būtų nukreiptas į paskyros registravimo puslapį. Taigi šiuo tikslu kiekvienas puslapis yra nauja scena, naujas ekranas. Dėl šios priežasties turime sukurti antrą vaizdo valdiklį, kurį rasite objektų bibliotekoje.

Įveskite rodinio valdiklį ir padėkite jį šalia pradinio vaizdo valdiklio. Ši scena bus atsakinga už registro rodinio valdiklį. Peradresavimas į tą puslapį gali būti atliekamas dviem būdais:

  1. mes galime tai padaryti rankiniu būdu, kai veiksmo ryšys iš mygtuko su kitu rodinio valdikliu
  2. mes galime tai padaryti programiškai

Aš nusprendžiau tai padaryti rankiniu būdu. Tai paprasta taip:

  1. Spustelėkite savo mygtuką kairiuoju pelės klavišu (mano atveju užregistruokite naują paskyrą)
  2. Laikykite nuspaudę komandą ir kairįjį pelės klavišą, kad vilktumėte jį į registro valdymo sceną.
  3. Paleiskite jį ten ir pasirinkite „Pateikti modaliai“

5 veiksmas: sukurkite programavimo klasę registracijos procesui

Taigi, dabar norime sukurti specialią naujos scenos kodavimo klasę.

Norėdami tai padaryti, turite atlikti šiuos veiksmus:

  • dešiniuoju pelės mygtuku spustelėkite savo projekto aplanką
  • spustelėkite naują failą, vadinamą kakavos lietimo klase
  • klasėje rašykite: RegisterVC
  • LABAI SVARBUS! Įsitikinkite, kad poklasis turi būti UIViewController tipo
  • kalba turi būti greita.
  • spustelėkite toliau ir išsaugokite savo kakavos klasę pagrindinėje projekto šaknyje.
  • Spustelėkite pagrindinę siužetinę liniją ir eikite į naują vaizdo valdiklį
  • spustelėkite geltoną mygtuką, esantį virš jo
  • dešinėje eikite pas klasės inspektorių ir nurodykite registro VC (Costum class, class = RegisterVC

6 veiksmas: sukurkite horizontalų puslapio braukimą

„IOS“sistemoje slinkties rodiniai naudojami norint peržiūrėti turinį, kuris visiškai netelpa ekrane. Slinkties rodiniai turi du pagrindinius tikslus:

Jei norite leisti vartotojams vilkti norimo rodyti turinio sritį, leisti vartotojams priartinti arba nutolinti rodomą turinį naudojant suspaudimo gestus. Įprastas „iOS“programose naudojamas valdiklis - „UITableView“- yra „UIScrollView“poklasis ir suteikia puikų būdą peržiūrėti didesnį už ekraną turinį.

Kam naudoti sublapus horizontaliai perbraukus?

Na, jei norėčiau sukurti 6 skirtingus puslapius, tai reikštų, kad kiekvienam iš jų turiu sukurti atskirą klasę ir nėra taip patogu perduoti informaciją iš vienos klasės į kitą. Pavyzdžiui, kai įvedu savo el. Pašto adresą ir paspaudžiu kitą, jei turiu kitą vaizdo valdiklį, išeisiu iš pirmojo rodinio valdiklio puslapio, o tada bus pateiktas antrasis. Tokiu atveju pirmojo vaizdo valdiklio informacija turi būti perduota kitam, o tada vėl trečiajam vaizdo valdikliui ir pan. Kai turėsiu visus reikalingus vaizdo valdiklius, turėsiu surinkti visus duomenis iš visų puslapius ir nusiųsti juos į serverį. Taigi, tai būtų tikrai sudėtinga.

Taigi, pereidamas prie šio vaizdo valdiklio kūrimo, mano atveju turėjau 5 puslapius, kuriuos norėjau sukurti:

  1. Paštu
  2. Pilnas vardas
  3. Slaptažodis
  4. Gimimo data
  5. Lytis

Tai reiškia, kad mūsų sukurtas vaizdo valdiklis turi būti 5 kartus didesnis nei tas, kurį sukūrėme anksčiau.

Pasirinkite savo vaizdo valdiklį ir eikite į viršų, dešinįjį kampą, spustelėkite liniuotės piktogramą ir redaguokite imituotą dydį. Norėdami pasirinkti plotį ir aukštį, pasirinksite „Freeform“. Numatytasis ekrano plotis, tinkantis „iPhone 8“, yra 375, taigi, jei padauginsiu 375*5 = 1875. Ir štai, turite išplėstinio vaizdo valdiklį.

Panašiai atliekate tą patį procesą visiems skirtingiems telefonams ir ekrano dydžiams.

Kad slinkties vaizdas veiktų, mums reikia slinkties peržiūros objekto. Slinkties peržiūra suteikia mechanizmą rodyti didesnį nei programos lango turinį. Spustelėkite šį objektą, vilkite jį ir padėkite jį viršutiniame kairiajame rodinio valdiklio kampe ir įsitikinkite, kad X ir Y yra nulinėje padėtyje, o tempimas atitinka jūsų vaizdo valdiklį.

Slinkties peržiūra leidžia tik slinkti, nieko daugiau. Tada turime pridėti turinio rodinį, kuriame bus saugomi kiti rodiniai. Objektų bibliotekoje galite rasti „UIView“- tai stačiakampis regionas, kuriame jis piešia ir priima įvykius. Tiesiog spustelėkite ir vilkite jį į slinkties rodinį ir dar kartą atitinkamai ištempkite.

Kairiajame skydelyje pasirinkite slinkties vaizdą ir mes vadinsime lygiavimą 0, 0, 0, 0 ir pridėsime apribojimų. Atlikite tą patį su turinio rodiniu.

7 veiksmas: sukurkite naudotojo sąsają horizontaliems perbraukimams skirtiems puslapiams

Image
Image
Įdiekite „Xcode“dizainą
Įdiekite „Xcode“dizainą

Atlikdami šį veiksmą turite sukurti antrinių puslapių vartotojo sąsają. Aš nusprendžiau padaryti „Sketch“prototipą ir tada sukurti jį „Xcode“.

8 veiksmas: įgyvendinkite „Xcode“dizainą

Įdiekite „Xcode“dizainą
Įdiekite „Xcode“dizainą
Įdiekite „Xcode“dizainą
Įdiekite „Xcode“dizainą

Kitas žingsnis yra įgyvendinti šį dizainą „Xcode“. Norėdami tai padaryti, turite sukurti išvesties jungtis visiems papildomiems puslapiams ir sukurti kitą „pagrindiniam vaizdui“, ty vieną išėjimo jungtį visam vaizdo valdikliui.

Siužetinės juostos elementai yra susieti su šaltinio kodu. Svarbu suprasti siužetinės linijos santykį su jūsų rašomu kodu.

Siužetinėje scenoje scena reiškia vieną turinio ekraną ir paprastai vieną vaizdo valdiklį. Peržiūros valdikliai įgyvendina jūsų programos elgseną ir valdo vieną turinio rodinį, naudodamiesi antrinių peržiūrų hierarchija. Jie koordinuoja informacijos srautą tarp programos duomenų modelio, kuris apima programos duomenis, ir rodinių, kuriuose rodomi šie duomenys, valdo jų turinio rodinių gyvavimo ciklą, tvarko įrenginio sukimosi krypties pasikeitimus, nustato naršymą programoje. ir įgyvendinti elgseną, kad reaguotų į vartotojo įvestį. Visi „iOS“rodinio valdiklio objektai yra UIViewController tipo arba vieno iš jo poklasių.

Kurdami ir įgyvendindami pasirinktinius rodinio valdiklių poklasius, galite apibrėžti rodinio valdiklių elgesį kodu. Tada galite sukurti ryšį tarp tų klasių ir siužetinės linijos scenų, kad gautumėte elgesį, kurį apibrėžėte kodu, ir vartotojo sąsają, kurią apibrėžėte siužetinėje linijoje.

„Xcode“jau sukūrė vieną tokią klasę, į kurią žiūrėjote anksčiau, „ViewController.swift“ir sujungė ją su siužetu, kuriame dirbate. Pridėję daugiau scenų, šį ryšį patys sukursite tapatybės inspektoriuje. Tapatybės inspektorius leidžia redaguoti savo siužetinėje linijoje esančio objekto savybes, susijusias su to objekto tapatybe, pavyzdžiui, kokiai klasei objektas priklauso.

„Outlets“suteikia galimybę nuorodą į sąsajos objektus-objektus, kuriuos pridėjote prie siužetinės linijos-iš šaltinio kodo failų. Norėdami sukurti išvestį, paspauskite „Control“ir vilkite iš konkretaus siužetinės linijos objekto į rodinio valdiklio failą. Ši operacija sukuria objekto, esančio jūsų rodinio valdiklio faile, ypatybę, kuri leidžia jums pasiekti ir valdyti objektą iš kodo vykdymo metu

  1. Atidarykite savo siužetinę liniją, Main.storyboard.
  2. Spustelėkite „Assistant“mygtuką „Xcode“įrankių juostoje, esančioje viršutiniame dešiniajame „Xcode“kampe, kad atidarytumėte asistento redaktorių. Jei norite daugiau vietos darbui, sutraukite projekto navigatorių ir naudingumo sritį spustelėdami mygtukus „Navigator“ir „Utilities“įrankių juostoje „Xcode“.
  3. Taip pat galite sutraukti kontūro vaizdą.

Redaktoriaus parinkimo juostoje, kuri rodoma redaktoriaus asistento viršuje, pakeiskite redaktoriaus asistento funkciją iš Peržiūra į Automatinė> ViewController.swift.

Spustelėkite antrinį puslapį ir vilkite į atitinkamą kodo klasę.

9 veiksmas: integruokite pasirinktinius gestus

Image
Image
Integruokite pasirinktinius gestus
Integruokite pasirinktinius gestus

Braukimo gestas

Braukimo gestas atsiranda, kai vartotojas vienu ar daugiau pirštų perkelia ekraną tam tikra horizontalia arba vertikalia kryptimi. Naudokite „UISwipeGestureRecognizer“klasę, kad aptiktumėte braukimo gestus.

Perbraukimo gesto įgyvendinimas

1 veiksmas: pridėkite braukimo gestą (-us) naudodami metodą viewDidLoad ()

nepaisyti funkcinio rodinioDidLoad () {super.viewDidLoad ()

let swipeLeft = UISwipeGestureRecognizer (tikslas: savarankiškas veiksmas: #selector (handleGesture)) swipeLeft.direction =.left self.view.addGestureRecognizer (swipeLeft)

tegul swipeRight = UISwipeGestureRecognizer (tikslas: savarankiškas veiksmas: #selector (handleGesture)) swipeRight.direction =. right self.view.addGestureRecognizer (swipeRight)

tegul swipeUp = UISwipeGestureRecognizer (tikslas: savarankiškas veiksmas: #selector (handleGesture)) swipeUp.direction =.up self.view.addGestureRecognizer (swipeUp)

tegul swipeDown = UISwipeGestureRecognizer (tikslas: savarankiškas, veiksmas: #selector (handleGesture)) swipeDown.direction =. down self.view.addGestureRecognizer (swipeDown)}

2 veiksmas: patikrinkite gestų aptikimą „handleGesture ()“metodo funkcinėje rankenėlėje kairėn {print ("Swipe Left")} else if gesture.direction == UISwipeGestureRecognizerDirection.up {print ("Swipe Up")} else if gesture.direction == UISwipeGestureRecognizerDirection.down {print ("Swipe Down")}}

Savo programoje norėjau naudoti „swipeRight“, bet negalėjau naudoti tos, kuri labiau tinka jūsų programai.

Dabar įdiekime tai į savo kodą.

Mes einame į registerVC.swift, kurį sukūrėme anksčiau, ir parašome kodą, kaip matote paveikslėliuose.

KODEKSO AIŠKINIMAS

Leiskite dabartinei_x gauti dabartinę „ScrollView“padėtį (horizontali padėtis), kad ekrano plotis gautų ekrano plotį, atimant šį dydį tegul new_x iš dabartinės slinkties rodinio padėties, aš grįžtu pagal ekrano plotį, jei dabartinis_x> 0, nebent jis būtų didesnis nei 0 - 0 yra 1 puslapis.

Ir mes baigėme!

Geras darbas vaikinai!

Rekomenduojamas: