Мазмуну:

Swift менен жылдыруу көрүнүшүн түзүңүз: 9 кадам
Swift менен жылдыруу көрүнүшүн түзүңүз: 9 кадам

Video: Swift менен жылдыруу көрүнүшүн түзүңүз: 9 кадам

Video: Swift менен жылдыруу көрүнүшүн түзүңүз: 9 кадам
Video: MORTAL KOMBAT WILL DESTROY US 2024, Июль
Anonim
Image
Image

Бир нече ай мурун, мен swift жана Xcode бар экенин билген эмесмин. Бүгүн мен түзгүм келген колдонмонун кичинекей бөлүгүн иштеп чыгууга жетиштим. Мен сиздер менен бөлүшкүм келген сонун нерсени жарата алдым.

Бул үйрөткүчтө мен сизди колдонуучулар жаңы каттоо эсебин каттоону каалашканда, кайра багыттала турган жылдыруу көрүнүшүнүн көрүнүшүн куруу процессине алып барам. Жолдо мен сизге эмне кылып жатканыбызды түшүнүшүңүз үчүн, биз сизге кылган нерселерибиздин теориялык түшүндүрмөлөрүн берем.

Муну жасоодон мурун, Swift жана Xcode деген эмне экенин сүйлөшөлү:

1. Swift macOS, iOS, watchOS жана tvOS үчүн күчтүү жана интуитивдүү программалоо тили. Swift кодун жазуу интерактивдүү жана кызыктуу, синтаксиси кыска, бирок экспрессивдүү жана Свифт иштеп чыгуучулар сүйгөн заманбап функцияларды камтыйт. Swift коду дизайны боюнча коопсуз, бирок ошол эле учурда чагылгандай тез иштеген программаларды чыгарат. Бул Apple Cocoa жана Cocoa Touch алкактары жана Apple продуктулары үчүн жазылган Objective-C кодунун көп бөлүгү менен иштөө үчүн иштелип чыккан. Бул ачык булак LLVM компиляторунун алкагы менен курулган жана Xcode'го 2014-жылы чыккан 6-версиясынан бери киргизилген. Apple платформаларында C, Objective-C, C ++ жана Swift коддорун иштетүүгө мүмкүндүк берген Objective-C иш убактысынын китепканасын колдонот. бир программанын ичинде.

2. Xcode - бул MacOS, iOS, watchOS жана tvOS үчүн программаларды иштеп чыгуу үчүн Apple тарабынан иштелип чыккан программалык камсыздоону иштеп чыгуу инструменттеринин топтомун камтыган macOS үчүн интеграцияланган өнүктүрүү чөйрөсү (IDE).

1 -кадам: Xcode жүктөп алыңыз

UIде иштөө
UIде иштөө

Xcode 10 бардык Apple платформалары үчүн укмуштуудай колдонмолорду түзүү үчүн керектүү нерселерди камтыйт. Эми Xcode жана Instruments macOS Mojaveдеги жаңы Dark режиминде сонун көрүнөт. Булак коду редактору кодду оңой өзгөртүп же рефакторлоого, тиешелүү линиянын жанындагы булактын көзөмөлүндөгү өзгөрүүлөрдү көрүүгө жана агымдагы коддордун айырмачылыктары жөнүндө тез маалымат алууга мүмкүндүк берет. Өзүңүздүн инструментиңизди ыңгайлаштырылган визуалдаштыруу жана маалыматтарды талдоо менен түзө аласыз. Swift программалык камсыздоону тезирээк түзөт, тезирээк колдонмолорду жеткирүүгө жардам берет жана андан да кичинекей экилик файлдарды чыгарат. Тест топтомдору бир нече эсе тезирээк бүтөт, команда менен иштөө жөнөкөй жана коопсузураак жана дагы көп нерселер.

Xcode 10 программаңызды тезирээк түзүүчү, тезирээк колдонмолорду жеткирүүгө жардам берген жана андан да кичинекей экилик файлдарды чыгаруучу Swift 4.2ди камтыйт. Swift 4.0 менен салыштырганда, эң акыркы Swift компилятору чоң тиркемелерди эки эсе тез кура алат.* Жаңы Xcode жаңы түзүлүш системасы менен айкалышканда, сиздин күнүмдүк түзөтүү, куруу жана сыноо процессиңиз бир топ ылдамыраак болот. Акыркы көп ядролук Mac жабдуулары үчүн оптималдаштырылган, Xcode жана Swift чагылгандай тез өнүгүү платформасын түзөт.

2 -кадам: Келгиле, баштайлы

Image
Image

Ошентип, биз кыла турган нерсе Xcodeго барып, жаңы долбоор түзүү. Биз жаңы долбоорду чыкылдаткандан кийин, биздин колдонмо бир каралуучу колдонмо болот. Билбегендер үчүн бир эле жолу көрүү колдонмосу бардыгын башынан баштоо керектигин жана биз программалай турган бир гана көрүнүш болорун билдирет.

Продуктуңузга TutorialApp деп ат коюңуз. Эгерде сиз App Storeдо колдонмолорду жарыялаган тажрыйбалуу иштеп чыгуучу болсоңуз, анда сиздин командаңыз болот, бирок сиз жаңы болсоңуз жана жарыяланган тиркемелериңиз жок болсо, анда сиз бул талааны өткөрүп жибере аласыз. Уюмдун аталышында, эгер сизде бар болсо, компаниянын атын жаза аласыз, менин учурда мен MacBook Proду сактап калам. Андан кийин, Уюмдун идентификатору сиздин долбоордун уникалдуу идентификатору катары каралат, андыктан сиз каалаган нерсени жаза аласыз. Тил сөзсүз тез болот.

Ошентип, кийинки баскычты басыңыз жана долбоорду иш столунда сактайлы, ошондуктан кирүү оңой.

Жаңы долбоор үч файлдан турат, AppDelegate.swift, ViewController.swift жана бул үйрөткүчтүн жылдызы: Main.storyboard. Ust Under Deployment Info> Device Orientation in General project settings, set Devices to iPhone. Бул портрет үчүн гана колдонмо болгондуктан, Landscape Leftand Landscape Right параметрлерин алып салыңыз. Ачык Main.storyboard долбоордун навигаторунда аны Interface Buildereditorдо көрүү үчүн:

Биз конфигурацияга эч кандай өзгөртүүлөрдү киргизбейбиз жана түз эле башкы сюжетке барабыз. Биз бир кароо колдонмосун түзгөндүктөн, биз жөнөкөй, жалгыз, бош көрүнүштү түздүк. Бул биз иштешибиз керек болгон нерсе.

3 -кадам: UIде иштөө

UIде иштөө
UIде иштөө
UIде иштөө
UIде иштөө

Көрүү контроллеринин сюжет тактасынын расмий терминологиясы - "сахна", бирок сиз терминдерди алмаштыра аласыз. Сахна сюжет тактасындагы көрүнүш контроллерин билдирет.

Бул жерде бош көрүнүштү камтыган бир кароо контроллерин көрөсүз. Сол жактагы көрүү контроллерине багытталган жебе бул окуя тактасында көрсөтүлө турган алгачкы көрүнүш контроллери экенин билдирет. Сюжет тактасынын редакторунда макетти иштеп чыгуу, объектилер китепканасынан (жогорку оң бурчун караңыз) башкаруу элементтерин көрүү контроллерине сүйрөө аркылуу ишке ашырылат.

Сюжет тактасынын редактору кантип иштээрин билүү үчүн, Объекттер Китепканасынан кээ бир көзөмөлдөрдү видеодо көрүнүп тургандай бош көрүнүш контроллерине сүйрөңүз.

Сиз башкаруу элементтерин сүйрөп барганда, алар сол жактагы Документтин контурунда көрүнүшү керек.

Сиз каалаган Колдонуучу интерфейсин түзө аласыз. Менин учурда, мен сүрөттө көргөнүңүздү колдондум.

4 -кадам: Экинчи көрүнүш контроллерин иштеп чыгуу жана сегменттерди баштоо (өтүүлөр)

Image
Image
Барактын горизонталдуу серпилүүсүн түзүү
Барактын горизонталдуу серпилүүсүн түзүү

Ошентип, менин колдонмомдо, колдонуучу "Жаңы каттоо эсебин каттоо" баскычын басканда, мен анын каттоо эсебинин баракчасына багытталышын каалайм. Демек, бул үчүн ар бир барак - бул жаңы көрүнүш, жаңы дисплей. Ушул себептен улам, биз объекттердин китепканасынан таба турган экинчи көрүнүш контроллерин түзүшүбүз керек.

Көрүү контроллерин териңиз жана аны алгачкы көрүү контроллеринин жанына коюңуз. Бул көрүнүш реестрди көрүү контроллери үчүн жооптуу болот. Ал баракка багыттоо эки жол менен жүргүзүлүшү мүмкүн:

  1. баскычтан башка көрүнүштү көзөмөлдөө үчүн аракетти туташтырганда, биз аны кол менен жасай алабыз
  2. биз муну программалык түрдө жасай алабыз

Мен тандап алган нерсе - аны кол менен жасоо. Бул жөнөкөй эле:

  1. Баскычыңызды бир чыкылдатыңыз (менин учурда, Жаңы каттоо эсебин каттоодон өткөрүңүз)
  2. Команданы кармап туруңуз жана чычкандын сол баскычын чыкылдатып, аны регистрди башкаруу сахнасына сүйрөңүз.
  3. Аны ошол жерден коё бериңиз жана "Modally Present" тандаңыз

5 -кадам: Каттоо процесси үчүн программалоо классын түзүңүз

Ошентип, азыр биз жаңы сахна үчүн атайын коддоо классын түзгүбүз келет.

Бул үчүн сиз төмөнкү кадамдарды жасашыңыз керек:

  • долбоор папкаңызды оң баскыч менен чыкылдатыңыз
  • какао сенсордук класс деп аталган жаңы файлды чыкылдатыңыз
  • класста жазыңыз: RegisterVC
  • АБДАН МААНИЛҮҮ! Подкласс UIViewController түрүндө болушу керек экенин текшериңиз
  • тил тез болушу керек.
  • Кийинкини басыңыз жана какао классыңызды долбооруңуздун негизги тамырында сактаңыз.
  • Негизги тактаны чыкылдатып, жаңы көрүнүш контроллерине өтүңүз
  • анын үстүндө жайгашкан сары кнопканы басыңыз
  • оң жакта класс инспекторуна барып, VC реестрине шилтеме жасаңыз (Costum class, class = RegisterVC

6 -кадам: Барактын горизонталдуу серпилүүсүн түзүү

IOS'до жылдыруу көрүнүштөрү толугу менен экранда туура келбеген мазмунду көрүү үчүн колдонулат. Жылдыруу көрүнүштөрүнүн эки негизги максаты бар:

Колдонуучуларга көрсөтүлгүсү келген мазмундун аймагын сүйрөп барууга, колдонуучуларга кысуу жаңсоолорунун жардамы менен көрсөтүлгөн мазмунду чоңойтуп же кичирейтүүгө уруксат берүү үчүн. IOS колдонмолорунда колдонулуучу жалпы көзөмөл - UITableView - UIScrollViewдун кичи классы жана экрандан чоңураак мазмунду көрүүнүн сонун жолун камсыз кылат.

Горизонталдуу серпүүдө суб-баракчалар эмне үчүн колдонулат?

Ооба, эгерде мен 6 башка баракты түзө турган болсом, анда мен алардын ар бирине атайын класс түзүшүм керек дегенди билдирет жана маалыматты бир класстан экинчисине өткөрүп берүү анча ыңгайлуу эмес. Мисалы, мен электрондук почтамды терип, андан кийин кийинки баскычты чыкылдатам, эгерде менде башка кароо контроллери болсо, мен Көрүү Контроллеринин биринчи барагынан кетем, андан кийин экинчиси көрсөтүлөт. Бул учурда, биринчи көрүү контролеринин маалыматы кийинкиге, анан кайра үчүнчү көрүнүш контролерине өткөрүлүп берилиши керек. Мага керектүү бардык кароо контроллери болгондо, мен баардык маалыматтарды чогултууга туура келет. барактар жана аларды серверге жөнөтүү. Демек, бул чынында эле татаал болмок.

Ошентип, бул көрүнүш контроллерин түзүүгө өтүү, менин учурда, мен түзгүм келген 5 барак бар болчу:

  1. Email
  2. Толук аты
  3. Купуя сөз
  4. Туулган датасы
  5. Гендер

Бул биз түзө турган көрүнүш контроллери биз жасаганга караганда 5 эсе чоңураак болушу керек дегенди билдирет.

Көрүү контроллерин тандап, жогорку, оң бурчка барып, сызгычтын сүрөтчөсүн чыкылдатыңыз жана Симуляцияланган Өлчөмдү түзөтүңүз. Сиз туурасын жана бийиктигин тууралоо үчүн Freeform тандайсыз. IPhone 8 үчүн жарактуу экрандын демейки туурасы 375, ошондуктан мен көбөйтсөм 375*5 = 1875. Ал эми бул жерде сизде кеңейтилген көрүнүш контроллери бар.

Ошо сыяктуу эле, сиз бардык телефондордо жана экран өлчөмдөрүндө бир эле процессти аткарасыз.

Жылдыруу көрүнүшүн иштетүү үчүн бизге жылдыруу көрүнүшүнүн объектиси керек. Scroll View колдонмонун терезесинин өлчөмүнөн чоңураак мазмунду көрсөтүү механизмин камсыздайт. Бул объектти чыкылдатыңыз, аны сүйрөп, көрүү контроллеринин жогорку сол бурчуна коюңуз жана X менен Y нөл позицияда экенине көзүңүз жетип, текшерүүңүзгө жараша созулушу керек.

Scroll View бизге жылдырууга гана мүмкүндүк берет, башка эч нерсе жок. Андан кийин биз башка көрүнүштөрдү сактай турган мазмун көрүнүшүн кошушубуз керек. Сиз UIView таба аласыз - бул окуяларды тарткан жана алган тик бурчтуу аймакты билдирет - объекттер китепканасында. Жөн гана, чыкылдатып, жылдыруу көрүнүшүнө сүйрөңүз жана дагы бир жолу ошого жараша сунуңуз.

Сол панелден жылдыруу көрүнүшүн тандаңыз, анда биз тегиздөөнү 0, 0, 0, 0 деп чакырып, чектөөлөрдү кошобуз. Мазмунду көрүү үчүн да ушундай кылыңыз.

7-кадам: Горизонталдуу серпүүнүн суб-баракчалары үчүн колдонуучу интерфейсин иштеп чыгуу

Image
Image
Дизайнды Xcodeдо ишке ашырыңыз
Дизайнды Xcodeдо ишке ашырыңыз

Бул кадамда сиз суб-барактарыңыздын UI түзүшүңүз керек. Мен тандаганым - Sketchте прототип жасап, андан кийин Xcodeдо куруу.

8 -кадам: Дизайнды Xcodeдо ишке ашырыңыз

Дизайнды Xcodeдо ишке ашырыңыз
Дизайнды Xcodeдо ишке ашырыңыз
Дизайнды Xcodeдо ишке ашырыңыз
Дизайнды Xcodeдо ишке ашырыңыз

Кийинки кадам - бул дизайнды Xcodeдо ишке ашыруу. Бул үчүн, сиз бардык суб-барактар үчүн чыгуучу туташууларды түзүп, экинчисин "эненин көрүнүшү" үчүн түзүүңүз керек.

Сюжет тактасындагы элементтер булак коду менен байланыштырылган. Сценарийдин сиз жазган кодго болгон мамилесин түшүнүү маанилүү.

Окуя тактасында сахна мазмундун бир экранын жана адатта бир көрүү контроллерин билдирет. Көрүү контроллери колдонмоңуздун жүрүм -турумун жүзөгө ашырат жана анын кароолорунун иерархиясы менен бир эле мазмундун көрүнүшүн башкарат. Алар колдонмонун маалыматын камтыган колдонмонун маалымат модели менен ошол маалыматтарды чагылдырган көрүнүштөрдүн ортосундагы маалымат агымын координациялайт, алардын мазмунунун жашоо циклин башкарат, түзмөк айланганда багытын өзгөртөт, колдонмоңуздагы навигацияны аныктайт., жана колдонуучунун киришине жооп берүү үчүн жүрүм -турумду ишке ашыруу. IOS'тогу бардык кароо контроллери объекттери UIViewController түрүндө же анын субкласстарынын биринде.

Сиз көрүү контроллерлеринин жүрүм -турумун коддогу өзгөчөлөштүрүлгөн контроллер субклассын түзүү жана киргизүү аркылуу аныктайсыз. Сиз ошондо өзүңүздүн кодуңузда аныкталган жүрүм -турумду жана сюжеттик тактаңызда сиз аныктаган колдонуучу интерфейсин алуу үчүн, бул класстар менен сахналар ортосунда байланыш түзө аласыз.

Xcode буга чейин караган ушундай класстын бирин жараткан, ViewController.swift, жана сиз аны өзүңүздүн тактаңызда иштеп жаткан сахнага туташтырдыңыз. Көбүрөөк көрүнүштөрдү кошкондо, сиз бул байланышты Identity инспекторунда өзүңүз жасайсыз. Идентификациялык инспектор сизге объекттин инсандыгына таандык болгон объектинин касиеттерин, мисалы объект кайсы класска тиешелүү экенин түзөтүүгө мүмкүндүк берет.

UI үчүн түйүндөрдү түзгүлө Розетка түзүү үчүн, көзөмөлдөө файлын сторондогу белгилүү бир нерседен көзөмөлдөп сүйрөңүз. Бул операция сиздин контролдоочу файлыңыздагы объект үчүн касиетти түзөт, ал ошол объектке иштөө учурунда коддон кирүүгө жана башкарууга мүмкүндүк берет.

  1. Сюжет тактаңызды ачыңыз, Main.storyboard.
  2. Жардамчы редакторун ачуу үчүн Xcode'дун оң жогорку бурчуна жакын жайгашкан Xcode куралдар тилкесиндеги Жардамчы баскычын чыкылдатыңыз. Эгер көбүрөөк орун иштешин кааласаңыз, Xcode инструменттер тилкесиндеги Навигатор жана Утилиттер баскычтарын чыкылдатып, долбоордун навигаторун жана пайдалуу аймагын жыйрыңыз.
  3. Сиз ошондой эле контур көрүнүшүн жыйыштырсаңыз болот.

Редактордун жардамчысынын жогору жагында пайда болгон редактордун тандоо тилкесинде, редактордун жардамчысын Алдын ала кароодон Автоматтык> ViewController.swiftге өзгөртүңүз.

Кошумча баракты чыкылдатып, коддогу тиешелүү класска сүйрөңүз.

9 -кадам: Ыңгайлаштырылган жаңсоолорду интеграциялоо

Image
Image
Ыңгайлаштырылган жаңсоолорду интеграциялоо
Ыңгайлаштырылган жаңсоолорду интеграциялоо

ЖЫЛДЫРУУ ЖАНА

Колдонуучу экрандын бир же бир нече манжасын белгилүү горизонталдык же вертикалдуу багытта жылдырганда серпүү жаңсоосу пайда болот. Серпүү жаңсоолорун аныктоо үчүн UISwipeGestureRecognizer классын колдонуңуз.

Серпүү жаңсоосун ишке ашыруу

1 -кадам: viewDidLoad () ыкмасында серпүү жаңсоолорун кошуңуз

func viewDidLoad () {super.viewDidLoad ()

болсун swipeLeft = UISwipeGestureRecognizer (максат: өз алдынча, аракет: #селектор (handleGesture)) swipeLeft.direction =.солго self.view.addGestureRecognizer (swipeLeft)

болсун swipeRight = UISwipeGestureRecognizer (максат: өз алдынча, аракет: #селектор (handleGesture)) swipeRight.direction =.right self.view.addGestureRecognizer (swipeRight)

болсун swipeUp = UISwipeGestureRecognizer (максат: өз алдынча, аракет: #селектор (handleGesture)) swipeUp.direction =. up self.view.addGestureRecognizer (swipeUp)

болсун swipeDown = UISwipeGestureRecognizer (максат: өзүн, аракети: #selector (handleGesture)) swipeDown.direction =. down self.view.addGestureRecognizer (swipeDown)}

2 -кадам: handleGesture () методунда жаңсоонун аныкталышын текшериңиз func handleGesture (жаңсоо: UISwipeGestureRecognizer) -> Void {if gesture.direction == UISwipeGestureRecognizerDirection.right {print ("Оңго сүрүңүз")} else if gesture.direction == UISwipeGizer. сол {басып чыгаруу ("Солго серпүү")} башка, эгерде gesture.direction == UISwipeGestureRecognizerDirection.up {print ("Өйдө сүрүңүз")} else if gesture.direction == UISwipeGestureRecognizerDirection.down {басып чыгаруу ("Ылдый сүрүү")}}

Колдонмомдо мен swipeRight колдонгум келди, бирок сиздин колдонмоңузга ылайыктуусун колдоно албай калдым.

Эми муну кодубузга киргизели.

Биз мурда түзгөн registerVC.swiftке кирип, сүрөттү көрүп тургандай кодду жазабыз.

КОДДУ ТҮШҮНДҮРҮҮ

current_x ScrollView (горизонталдык позиция) учурдагы позициясын алсын, экрандын туурасын screen_width алсын, бул өлчөмдү алып салыңыз, new_x scrollviewнын учурдагы абалынан болсун, эгер экрандын туурасы боюнча кайтып келем, эгер current_x> 0 0дөн ашпаса - 0 - бул 1 -бет.

А биз бүттүк!

Жакшы иш жигиттер!

Сунушталууда: