De kinetiek van animatie - en werken: 1

animatie - dynamiek, werken: 1, 22,,,,,,,,,,, delen, delen van,,,,,, het netwerk van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen, de.,,, tijdens de les, ik zal laten zien dat je een nieuwe 108 SDK, ook al 7, werken en ik zal je vertellen   dynamiek te worden gebruikt voor het creëren van een aantrekkelijk en opvallende animatie., is bedoeld om de interface. De ontwikkelaars van toevoeging van realisme in een eenvoudige en directe manier toegepast.In deze handleiding is, zien we een voorbeeld van het eerste deel, in deze handleiding zal ik laten zien hoe het creëren van een animatie menu 's, en in het tweede deel, dat we ons zullen concentreren op het creëren van een aangepaste animatie alarm bekijken.We zullen om de menu 's en de aanmelding van mening als afzonderlijke onderdelen te maximaliseren, hergebruik.We werken monteurs punten in de code te werken, in een te mechanische punten noodzakelijk is.Werken is een deel van het kader van de dynamiek van werken, wat betekent dat je zonder toevoeging van een extra kader in uw project te gebruiken. En voor de ontwikkeling van personeel, het toevoegen van een interface die realistisch is, voor uw aanvraag beschouwd ".De dynamiek van de motor werken door fysieke bedoelde werk is belangrijk.De ontwikkeling van het personeel te concentreren op hun wil toevoegen voor de toepassing, in plaats van uitvoering van de functie.Wiskunde en natuurkunde een fundamenteel begrip is alles wat je moet beginnen met werken de dynamiek, de dynamiek van de interface is de belangrijkste component van werken, uidynamicanimator, klasse, ook bekend als de  , dynamische animatie.Deze categorie is verantwoordelijk voor het gebruik dat van de fysieke motor animatie.   zelfs dynamische animatie   dynamische interface werken, die de kern van het niet voor zichzelf. En, om te werken, specifieke acties,   moet worden toegevoegd aan de dynamische animatie.Dit gedrag is het verzamelen van fysieke kracht   animatie, definitie van de toevoeging van een of meer van de resultaten van de acties.De programmering voor de manier waarop deze dynamische gedrag   is de dynamische interface werken en voor elke handeling met specifieke eigenschappen, kan een wijziging van deze handelingen, animatie, gevolgen. De basis is  , uidynamicbehavior, klasse.Maar je kan je eigen gewoonte gedrag,   dynamiek biedt een aantal werken van de gemakkelijk te gebruiken -, simulatie van gemeenschappelijke acties, zoals de ernst en de botsing.,,,,,, uigravitybehavior, uidynamicbehavior,  : toevoeging van de zwaartekracht.Dus, het project naar een bepaalde richting het gedrag van de definitie van de uicollisionbehavior.,,,,, deze definitie: twee met elkaar of is een project van een vooraf bepaalde grenzen van de botsing, materiële of immateriële,,,,,, uipushbehavior, zoals de naam al aangeeft, een project ter bevordering van dit soort gedrag te versnellen, project.- kan zijn, continu, of  , onmiddellijk.De uitvoering van een continu voor de voortstuwing en geleidelijke toepassing van toepassing op de momentane gedrag koppel gedrag van de toenemende uisnapbehavior.,,,,,: Card gedrag hoe de definitie van een vast naar een ander project of een punt in de ruimte.Administratieve eenheid gedrag is pas op verschillende manieren.Bijvoorbeeld, kan het project tot een even een bijeenkomst of schudden zonder te komen.,,,,, een uiattachmentbehavior, bevestiging omschreven gedragingen van zowel de dynamische project is verbonden aan een of meer dynamische project is verbonden met een anker.,,, die door de dynamiek van de interface, die op dit moment werken belangrijke dynamische gedrag.Om ervoor te zorgen dat deze besluiten om hun werk te doen, ze moeten worden gestart, configuratie en toegevoegd aan de dynamische animatie, voorwerp, we hebben gezegd, in combinatie met de actie mogelijk is, zolang ze niet tot een conflict.Neemt tevens nota van het feit dat sommige gedrag kan alleen nog een dynamische animatie.Bijvoorbeeld de toevoeging van twee voorbeelden, uigravitybehavior, dynamische animatie leidt tot abnormale gedrag altijd.,, die van toepassing zijn op dynamische project.Een object van dynamische project, in overeenstemming met de overeenkomst, uidynamicitem,.Het meest belangrijke is, uiview, UICollectionViewLayoutAttributes, klas, is in overeenstemming met de in deze overeenkomst.Dit betekent dat uw aanvraag in elk oog gebruik kunnen maken van de dynamiek van   werken.,, nog een, uidynamicbehavior subklassen, voor wat het waard is, uidynamicitembehavior,.   en niet de definitie van een bepaald gedrag, en het biedt een basis voor dynamische configuratie, kan worden toegepast op de dynamische project.Het is een eigenschap omschreven acties:,,,,,,, de definities van de kenmerken: flexibiliteit, een dynamische of dynamische en tussen de grens van de elasticiteit van de botsing.Waarden variërend van 0 tot 1,,,,   en de laatste is een elastische botsingen, dichtheid,.,,,: deze eigenschap wordt een dynamische en de kwaliteit van de projecten en leiden tot een hoge waarde van het gewicht.Maar als je niet wil een dynamische project wordt verplaatst, een andere en het nut van de,,.,,, de naam spreekt voor zich: de eigenschap.De definities van de kenmerken van de snelheid van de projecten angularresistance demping van dynamische,.,,,,: dit is een soortgelijke, verzet, eigendom, maar   angularresistance, de definities van de kenmerken, de   hoeksnelheid, wrijving,.,,, de definities van de kenmerken: twee dynamische projecten elkaar glijdende of van allowsrotation.,,,,, deze eenvoudige aangewezen: dynamische project laat draaien of niet, in combinatie met het dynamische gedrag.,, kan voor de geweldige resultaten.In deze handleiding zullen we gebruik maken van de hierboven genoemde besluiten.,, nodig ik u uit om het appel van de officiële documenten, om meer te weten te komen over de dynamiek van de centrale klassen werken.Ook na de voltooiing van deze handleiding, spelen, de resultaten van een beter begrip van de verschillende begrippen en definities van de dynamiek van het gedrag van werken is zeer nuttig.,, 2.Samenvatting van de aanvraag, heb ik in de inleiding, dan creëren we twee herbruikbare componenten, met behulp van mechanische die zal werken.In deze handleiding, creëren we een speciaal menu animatie.Kijk onder de definitieve resultaten zien,,,,,, deze vergadering is een uiview betreft, op het scherm, dia 's.Om het menu verschijnen en verdwijnen, een eenvoudige toepassing van de   gebaren.Het menu is opgenomen in een algemene vorm in het oog.Op de Top van de animatie is in de foto 's zien door de combinatie van een dynamisch gedrag te bereiken.Het creëren van een project, begonnen met de invoering van aanvragen, het creëren van een nieuw project.De keuze van de toepassing van de gemeenschappelijke standpunten,   model, in toepassing van de categorie van de,, 108, deel.Klik op de  , de volgende gaan,,,,,, de naam van het project, dynamicsdemo, om zeker      , apparatuur, is het verzamelen van  , iPhone.In deze handleiding, die ik had  , kengetal, leeg, maar op elk moment in je eigen soort prefix.   klik  , de volgende aanvragen,   vertellen, wil je de opslag van projecten te creëren,  ,,,,,,,, het downloaden van deze handleiding van de bron van het dossier in De aanvragen van projecten en images.xcassets projecten toe te voegen aan de beelden in het project MAP, navigatie,,,,,,,, het imago van het auteursrecht: icons8), 4.We beginnen met de uitvoering van de menu 's, in de menu' s voor het onderdeel, kijk hoe het moet functioneren, is heel belangrijk.Zoals ik al heb gezegd, de menu 's blijk moeten geven van hun glijden van links en van links naar rechts, van links naar rechts, de standpunten van de glijbaan, en verberg de menu' s door een gebaar een borstel.De dynamiek van de menu 's werken zal verantwoordelijk zijn voor de handelingen of animatie.We zullen het gebruik van gedrag is: gedrag van de zwaartekracht, zwaartekracht,: gedrag brengt de menu 's gaan in de goede richting, van links of van rechts.Als er geen zwaartekracht gedrag, het menu niet doen, hoeveel, botsing gedrag, ook belangrijk: botsing gedrag.Als het niet het menu niet stoppen met bewegen als de zwaartekracht op worden toegepast.Een onzichtbare grens zal leiden tot botsingen van de menu 's stop waar je bent, we willen het laten stoppen, zelfs op de ernst en de botsing gedrag: gedrag kan menu en stoppen, geven we het een extra stimulans of versnelde   gedrag met duwen.Dit zal de animatie meer dynamische project.,, zullen we ook de menu 's gedrag: de definitie van de toevoeging van een dynamische project elastisch gedrag.Dit zal leiden tot een botsing  .,,, in plaats van de concretisering van de besluiten van de effecten van elke keer als ze nodig hebben, zullen we een keer gestart.Als we ze nodig hebben, als we de toepassing van en de configuratie van de gedrag, dat zal afhangen van het standpunt van de menu 's en de richting die het moeten verplaatsen. 5.Eigenschappen, de structuur en de initialisatie, stap 1: het creëren van een soort, laten we beginnen met de toevoeging van een nieuwe klasse van het project.Volgens de beschikking, de keuze van  , n, C,   de lijst van modellen, 108 >   cacao aan, punt.Klik, de volgende   blijven.,,,,, dat de nieuwe koers  , om ervoor te zorgen dat de menucomponent,   geerfd NSObject,,,.Klik op de volgende aanvragen, dat je wilt redden, documenten, te creëren waar,,,,,,,, stap 2: verklaring eigenschap,, open,   menucomponent. H,   en de definitie van een opsomming van de richting van de menu 's.Van links naar rechts of links richting kan worden.De toevoeging van het volgende fragment zijn de volgende verklaringen. De verklaring, van die soorten, menudirectionoptiontypes {menudirectionlefttoright, menudirectionrighttoleft} menudirectionoptions;,, open, menucomponent. M. De toevoeging van een categorie van de uitbreiding, en vast te stellen dat de eigendom:,, "interface menucomponent () @ eigendom (geen atomen, sterke uiview * * * * * * *) menuview @ eigenschappen; (niet - nucleaire, sterk uiview * * * * * * * backgroundview; @) (niet - nucleaire eigenschappen, sterk uiview * * * * * * *) TargetView; @ eigenschap (niet - nucleaire, sterke) uitableview * * * * * * * optionstableview; @ eigenschap (niet - nucleaire, sterke) menuoptions NSArray *; @ eigenschap (niet - nucleaire, sterke) menuoptionimages NSArray *; @ eigenschap (niet - nucleaire, sterke) uidynamicanimator * tekenaar; @ eigenschappen (niet - nucleaire menudirectionoptions ik)Nudirection; @ eigendom (volledige) CGRect menuframe; @ eigendom (volledige) CGRect menuinitialframe; @ eigendom (volledige) Bull ismenushown; @,,, menuview,: dit is het menu, animatie van voorwerpen.Overzichtstabel van mening dit standpunt, backgroundview,.,: tegen de achtergrond van doorzichtige, wordt voorkomen dat de gebruiker op het menu bekijken dingen buiten de TargetView.,,,: dit is van mening, en het standpunt van de menu 's achtergrond zal toenemen, optionstableview,.,: dit is een vorm van mening zal Een lijst van opties, menuoptions, menu' s. Dit pakket bevat,: de menu 's, vertonen de schijnbare.,, menuoptionimages,: dit pakket bevat de naam van het beeld, van elke vorm van mening in de cel, links, animatie,: dit is, uidynamicanimator bijvoorbeeld, animatie, menu' s,,, menudirection,: deze eigenschap, de aard van de menudirectionoptions,   en de richting bepalen in welkeHet menu zal menuframe.,,,: dit is het menu van de kader menuinitialframe.,,,: dit is het menu van de voorlopige lijst van ismenushown.,,,: tekenen waaruit de menu 's gebleken of niet.,,, afgezien van deze persoonlijke aard, moeten we ook de verklaring van de geslachten.Herziening van  , menucomponent. H,   en de toevoeging van het volgende fragment:,, "interface menucomponent:NSObject @ eigendom (niet - nucleaire, sterke) menubackgroundcolor uicolor *; @ eigenschap (niet - nucleaire, sterke) nsmutabledictionary * * * * * * * tablesettings; @ eigendom (volledige) cgfloat optioncellheight; @ eigendom (volledige) cgfloat @,,, menubackgroundcolor versnelling;,: deze eigenschap wordt de menu 's achtergrond kleur.,,, en dit is mijn tablesettings, vermeld in de vorige afdeling woordenboek.Het laat ons door de toewijzing van een aantal opties overzichtstabel.,, optioncellheight,: dit is de enige zichtbare goederen niet kan worden vastgesteld, tablesettings, woordenboek.Het is aangewezen de cellen de schijnbare lijn. De eigenschap specificeert:,, de omvang van de praktijk, met andere woorden, de kracht die wordt uitgeoefend, de menu 's zien stelen van import en standpunten.,,, stap 3: de uitvoering van de eerste methode, over deze stap, de definitie van een gewoonte hebben gestart, het voorzien van:,,, menu' s oog, dit is het laatste beeld van de voltooiing van de menu 's, frame in tekenfilms, zichtbaar is, en de doelstelling van mening dat menu bekijken, toevoeging van een sub - opties en het imago van mening, dat de vorm van mening, dat In de richting van de menu' s, animatie, gewoonte - interface, zoals blijkt uit onderstaande tabel.Het toevoegen aan de interface tussen klasse, menucomponent,.,, - (ID) initmenuwithframe: (CGRect) in het kader van de TargetView: (uiview * * * * * * *) TargetView richting: (menudirectionoptions) richting kiezen: (NSArray * * * * * * *) (* * * * * * * optionimages opties: NSArray) optionimages;,, laten we zien dat een gewoonte - -.De toevoeging van het volgende fragment, dat menucomponent soorten documenten.Mooi, zoals je kunt zien dat de volgende eenvoudige (ID).,, - initmenuwithframe: (CGRect) in het kader van de TargetView: (uiview * * * * * * *) TargetView richting: (menudirectionoptions) richting kiezen: (NSArray * * * * * * *) (* * * * * * * optionimages opties: NSArray) optionimages {als (- = [super -]) {self.menuframe = kader; self.targetview = TargetView; self.menudirection = richting; self.menuoptions = optie; self.menuoptionimages = optionimages;}}, 6, zelf terug.Zet alles klaar, er is een eigenschap, moet worden gestart, en ik denk dat dit een goed idee is, zal ze in een combinatie van privé - methode.Kijken naar de uitbreiding, menucomponent klasse, van de klasse van de verklaring luidt als volgt:,, voor de interface menucomponent (").- setupmenuview (nietig); - (") setupbackgroundview; - (") setupoptionstableview; - (") setinitialtableviewsettings; - (") setupswipegesturerecognizer; @,,,,, setupmenuview, in  , setupmenuview, ons menu.Omdat de menu 's in eerste instantie moet een zichtbare gedeelte van het scherm, beginnen we met de berekening van de voorlopige lijst van   menu' s.En dan starten om de oorspronkelijke lijst van menu 's, die de achtergrond van kleur, en de toevoeging van een overzicht van de doelstellingen of de moedermaatschappij.,, - (b) setupmenuview {als (self.menudirection = = = = = = = = = = = = = menudirectionlefttoright) {self.menuinitialframe cgrectmake (-self.menuframe.size.width zelf. Menuframe. De oorsprong. Y, self.menuframe.size.width, menuframe zelf.. afmetingen. Hoogte) anders self.menuinitialframe = cgrectmake;} {(self.targetview.frame.size.width zelf. Menuframe y, self.menuframe.size.width oorsprong.Zelf. Menuframe. Afmetingen. Hoogte);} self.menuview = [] [initwithframe: verdeling van uiview zelf. Menuinitialframe]; [self.menuview geregeld TabHost achtergrond kleur: groen: 0,47 [uicolor colorwithred:0 blauw: 0,39 - 1]]; [self.targetview vertaling: zelf. Menuview];},,,,, setupbackgroundview, in De  , setupbackgroundview, zetten we de achtergrond.Let op, de waarde van de achtergrond van mening is oorspronkelijk vastgesteld op 0.We werken de waarde op het moment van de menu 's.,, - (nietig) setupbackgroundview {self.backgroundview = [] [initwithframe: verdeling van uiview zelf. TargetView. Frame]; [self.backgroundview geregeld TabHost achtergrond kleur: [uicolor die vis]]; [0]; [self.backgroundview setalpha:self.targetview vertaling: backgroundview zelf. Setupoptionstableview];},,,,,, in de  , setupoptionstableview, we beginnen, door een beroep te doen op de eerste tabel initwithframe: de grootte van het uitzicht,   op de menu' s voor de omvang van de overzichtstabel.De  , menucomponent,   aanleg om de bron van gegevens en de vertegenwoordigers van de overzichtstabel.,, - (") setupoptionstableview {self.optionstableview = [verdeling van [initwithframe:cgrectmake (0, 0, self.menuframe.size.width zelf. Menuframe. Afmetingen. Een hoge mate van) stijl: uitableviewstyleplain]; [self.optionstableview geregeld TabHost achtergrond kleur: [uicolor clearcolor]]; [self.optionstableview setscrollenabled: geen]; [self.optionstableview setseparatorstyle:uitableviewcellseparatorstylenone]; [self.menuview vertaling: zelf. Optionstableview]; [self.optionstableview setdelegate: zelf]; [self.optionstableview geregeld gegevens Bron: zelf];}, en door de vaststelling van menucomponent, bijvoorbeeld, de bron van gegevens en de vertegenwoordigers van de overzichtstabel, T -Hij vertelde ons dat niet in overeenstemming is met de menucomponent worden opgesteld, uitableviewdatasource uitableviewdelegate,,, van die overeenkomst.Laten we gebruik maken van de nieuwe, menucomponent het hoofd van documenten, zoals hieronder aangegeven.,, "interface menucomponent:NSObject < uitableviewdatasource, uitableviewdelegate >,,,,, setupinitialtableviewsettings, in  , setupinitialtableviewsettings, we starten, en vullen, tablesettings,   woordenboek, we zijn verklaring in de interface voor de,,. - nietig setinitialtableviewsettings {self.tablesettings) = [] [nsmutabledictionary toewijzing initwithobjectsandkeys:[uifont fontwithname:@" Amerikaanse typemachine "dimensie: 15]", "het lettertype" [], NSNumber numberwithint:nstextalignmentleft @ "TextAlignment", [in het Wit uicolor @ "tekst."[NSNumber numberwithint:uitableviewcellselectionstylegray] "," selectionstyle ", nul];},,,,, setupswipgesturerecognizer, in  , setupswipegesturerecognizer, we starten, en de toewijzing van swipe gebaar is van mening, dat de menu 's te verbergen. - (setupswipegesturerecognizer {* hidemenugesture uiswipegesturerecognizer nietig) = [] [uiswipegesturerecognizer: verdeling van initwithtarget zelf actie: @ - - (hidemenuwithgesture:)]; als (self.menudirection = = menudirectionlefttoright) {} {hidemenugesture.direction = uiswipegesturerecognizerdirectionleft; anders hidemenugesture.direction = uiswipegesturerecognizerdirectionright} [self.menuview addgesture;Identificatie: hidemenugesture];}, zijn er twee dingen op gewezen.Ten eerste, de gebaren richting afhankelijk van de waarde van  , menudirection,   eigendom.Ten tweede, hidemenuwithgesture: methode is, op een privé - methode, als gebaar van opsporing van gebaren.We zullen de tenuitvoerlegging van deze methode, maar uit de samensteller waarschuwen voor de uitbreiding van dergelijke verklaringen, menucomponent - methode, zoals hieronder aangegeven.,, "interface menucomponent ().- hidemenuwithgesture (nietig): (uiswipegesturerecognizer * * * * * * *) gebaar; @ voorbij is, laten we optimaal gebruik maken van onze werkzaamheden ten behoeve van de methode is door een beroep te doen op de in de eerste methode zoals hieronder aangegeven.,, - (ID) initmenuwithframe: (CGRect) in het kader van de TargetView: (uiview * * * * * * *): (menudirectionoptions TargetView richting opties (NSArray: * * * * * * *) (* * * * * * * optionimages opties: NSArray) optionimages {als (- = [super -]) {...Zet de achtergrond van mening.Setupbackgroundview [uit]; ///////menu.Sinds setupmenuview []; ///////opties schijnbare.Sinds setupoptionstableview] [tot vaststelling van een eerste lijst van; ///////de voorzien.Sinds setinitialtableviewsettings []; ///////swipe gebaar is.Sinds setupswipegesturerecognizer [];} terug zelf;}, en op de achtergrond is van mening dat op het menu van mening is ervoor te zorgen dat de achtergrond van mening is, tot slot, de menu 's zijn voorzien. De rest van de eigenschappen van de, gestart na een oproep van de aanvullende methoden zoals hieronder aangegeven.,, - (ID) initmenuwithframe: (CGRect) in het kader van de TargetView: (uiview * * * * * * *) TargetView richting: (menudirectionoptions) richting kiezen: (NSArray * * * * * * *) (* * * * * * * optionimages opties: NSArray) optionimages {als (- = [super -]) {...///////- animatie.De verdeling van self.animator = [] [uidynamicanimator initwithreferenceview: zelf. TargetView]; ///////de hoogte in elke cel.Self.optioncellheight = 50; ///////versnelling (afhankelijk van de grootte van de oorspronkelijke).Self.acceleration = 15; ///////menu niet blijkt dat de oorspronkelijke.Self.ismenushown = geen;}}, 7, zelf terug.Dynamisch gedrag van het menu van mening, elke keer verschijnen en verdwijnen, we gebruiken dezelfde dynamische gedrag.Dus, zullen we het hergebruik van deze dynamische gedrag.Het enige verschil is dat de richting van de menu 's in de animatie  .,, creëren we een methode, en we zullen het dynamische gedrag en noodzakelijk zijn voor de toepassing van de menu' s, zeggen we dat elke staat moet veranderen.De methode voor de aanpassing van togglemenu begint, de categorie, de privé - klasse, menucomponent (") uit te breiden.- togglemenu (nietig); @ en, tot slot, waarnaar ik heb verwezen, dynamisch gedrag, zal worden gebruikt voor de vervaardiging van animatie menu is zwaartekracht, botsen, en duwen.Elke actie heeft een of meer kenmerken, tot wijziging van de bij het bepalen van de richting van de animatie.,,, het gedrag van de zwaartekracht, richting, de aard, de een  , cgvector,   structuur van de richting aangewezen.Bijvoorbeeld, door de vaststelling, de richting en de aard, de {1 0), de zwaartekracht gedrag bleef op de juiste waarde {0, 1), die naar de bodem van   kracht.,, de botsing van twee dynamische project werken of dynamische en de grens tussen.In ons geval, we moeten stoppen met twee     menu gezien de definitie van een onzichtbare grens, op gedrag. En de omvang van de aard, de definitie van de versnelling, van toepassing op de dynamische project.Ook in de richting van de waarde van de besluiten ter bevordering van togglemenu.,,,,,, hebben wij ons in de eerste plaats de berekening van de waarde van de eigenschap.En dan hebben we de oprichting en samenstelling van het dynamische gedrag en toegevoegd aan een dynamische animatie, benadrukt dat de  .,, ismenushown, waarden is belangrijk, met vermelding van het menu van de gebleken of niet,,,, menudirection, specificeert de animatie richting, om deze de waarde van de eigenschap.,,, animatie, voorwerpen een serie bevat alle dynamische gedrag, is er niets aan toe te voegen.Elke keer, togglemenu, de methode, de bestaande dynamische gedrag in een reeks door aaseters te schrappen, omdat het dynamische gedrag niet meer twee keer de dynamische gedrag, zoals zwaartekracht gedrag.,, laten we beginnen met de tenuitvoerlegging van togglemenu,,.,, - (") togglemenu (///////schrapping van alle eerdere handelingen toe te voegen aan de animatie.[self.animator removeallbehaviors]; ///////de volgende definitie van de variabelen de menu 's om animatie.Deze variabele zwaartekracht richting aangeven.Cgfloat gravitydirectionx; ///////de twee aangewezen punt van een onzichtbare grens in het menu van mening zou botsen.//////////////grens moet altijd aan de kant van de richting van de zwaartekracht, met het oog op de menu 's oog /de /kan stoppen met bewegen.Cgpoint collisionpointfrom, collisionpointto; ///////- waarde hoger op het menu zien, een hogere versnelling.Indien de waarde wordt vastgesteld op 0, is slechts van toepassing op //menu bekijken.Cgfloat pushmagnitude = self.acceleration;},,,,, collisionpointto gravitydirectionx, collisionpointfrom,,,,, pushmagnitude, zal de waarde van de variabelen die in het bezit zijn van een dynamisch gedrag, zullen we na de verdeling.Dat we onze eigen waarden, op basis van de staat en de richting van het menu animatie.,, - (") togglemenu {...Als een menu 's of te laten zien.Als (!Zelf als het menu. Ismenushown) {///////oog verborgen is, is het aangewezen dat over is, dan elke variabele /waarde afhankelijk van animatie.Als (self.menudirection = = menudirectionlefttoright) {///////1 betekent dat de waarde van de "dynamische" aan de goede kant gezien.Gravitydirectionx = 1; ///////en de definitie van een onzichtbare grens, waar de X - uit de Verts /is gelijk aan dat van de gewenste X uit het menu van mening moeten botsen, en /y-origin aangewezen punt van de hoogste en laagste grens.Als de menu 's van mening dat het conflict van links naar rechts en dan de grens /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////.Collisionpointfrom = cgpointmake (self.menuframe.size.width zelf. Menuframe. De oorsprong. Y); collisionpointto = cgpointmake (self.menuframe.size.width zelf. Menuframe. De omvang van de hoogte of {}.); ///////1 betekent dat de waarde van de "pull" - aan de linker oog.Gravitydirectionx = 1; ///////menu gezien als die van links naar rechts, en dan botsen grens /moet worden gedefinieerd als in de eerste plaats de menu 's van de linker oog.Collisionpointfrom = cgpointmake (self.targetview.frame.size.width - self.menuframe.size.width zelf. Menuframe. De oorsprong. Y); collisionpointto = cgpointmake (self.targetview.frame.size.width - self.menuframe.size.width zelf. Menuframe. Afmetingen. De hoogte); ///////pushmagnitude variabelen voor de vaststelling van andere waarden.Pushmagnitude = (1) * pushmagnitude;) ///////maar de achtergrond is doorzichtig.[]:self.backgroundview setalpha 0,25} {///////; anders als de menu 's verborgen is, dan moet worden vastgesteld voor de waarde in plaats van in het succes van alle variabelen /animatie.Als (self.menudirection = = menudirectionlefttoright) {gravitydirectionx = 1; collisionpointfrom = cgpointmake (-self.menuframe.size.width zelf. Menuframe. De oorsprong. Y); collisionpointto = cgpointmake (-self.menuframe.size.width zelf. Menuframe. Afmetingen. Hoogte); ///////pushmagnitude variabelen voor de vaststelling van andere waarden.Pushmagnitude = (1) * pushmagnitude} {gravitydirectionx = 1; of; collisionpointfrom = cgpointmake (self.targetview.frame.size.width + self.menuframe.size.width zelf. Menuframe. De oorsprong. Y); collisionpointto = cgpointmake (self.targetview.frame.size.width + self.menuframe.size.width zelf. Menuframe. Afmetingen. Hoogte);) ///////om de achtergrond van volledige transparantie.[0]:self.backgroundview setalpha;}}, dit deel van de code is zeer eenvoudig te begrijpen, hoewel de omvang van de in de code.   toelichting zal je helpen begrijpen wat er is gebeurd.Let op,   achtergrond van de  , α,   waarde is afhankelijk van het menu aan te tonen of verborgen, het is tijd. En toevoeging van dynamische gedrag.Laten we beginnen met het gedrag van de zwaartekracht, uigravitybehavior *., gravitybehavior = [] [] [uigravitybehavior toewijzing initwithitems:@ zelf. Menuview]; [gravitybehavior setgravitydirection:cgvectormake (gravitydirectionx, 0)]; [self.animator addbehavior:gravitybehavior];,, we gebruiken, gravitydirectionx, variabele zwaartekracht, gravitydirection, eigendom, uicollisionbehavior, collisionbehavior = [* * * * * * * [] [uicollisionbehavior toewijzing initwithitems:@ zelf. Menuview]; [collisionbehavior addboundarywithidentifier:@ "van collisionboundary": collisionpointfrom: collisionpointto]; [self.animator addbehavior:collisionbehavior];,, misschien is het je opgevallen dat t- de hoed voor de ernst en de gevolgen die een reeks acties, met inbegrip van dynamische gedrag zal worden toegepast.In ons geval, maar het menu bekijken. En voegen we duwen, in het gedrag van de animatie, laten we in de eerste plaats het creëren van een project, eenvoudig gezegd, is het dynamische gedrag,,, een gemeenschappelijk handelen, zullen we het gebruik te maken van de instellingen, elastische botsing.De elasticiteit van de,, waarde groter is, de standpunten en de onzichtbare grens botsing van grotere flexibiliteit.Aanvaardbare waarden variërend van 0 tot 1,,,,,,, uidynamicitembehavior * * * * * * * itembehavior = [] [] [uidynamicitembehavior toewijzing initwithitems:@ zelf. Menuview]; [5]; [itembehavior setelasticity:self.animator addbehavior:itembehavior];,, kunnen we om meer gebruik van de eigenschap van het gedrag, itembehavior, voorwerpen, bijvoorbeeld, weerstand, of wrijving.Je kunt spelen met deze eigenschap, als je wilt.,, laten we nu in aanvulling op het gedrag van de menu 's, zal versnellen, uipushbehavior *., pushbehavior = [] [] [uipushbehavior toewijzing initwithitems:@ zelf. Menuview model: uipushbehaviormodeinstantaneous]; [pushbehavior setmagnitude:pushmagnitude]; [self.animator addbehavior:pushbehavior]; en door De vaststelling van een model van,,,  , uipushbehaviormodeinstantaneous duwen,   gedrag van kracht en niet een keer wordt.Dynamisch gedrag nu al worden toegevoegd aan de dynamische animatie, wat betekent dat het tijd is, om het menu verschijnen en verdwijnen.,, 8.En verberg de menu 's, menu' s, stap 1:,,, en verberg de menu 's, we moeten op een privé -  , togglemenu, methode.De menu 's moeten worden opgenomen in een   swipe gebaar richting de doelstellingen vastgesteld.Laten we beginnen door te verklaren dat een openbare methode kan op het menu 's.Open de  , documenten ViewController. H,   aangegeven methode, menu 's, zoals hieronder aangegeven.,, "interface menucomponent:NSObject < uitableviewdatasource, uitableviewdelegate >...- het einde van de menu 's (.); @, dat is heel eenvoudig, want alles wat we doen is togglemenu methode noemen.De aandacht van ons ismenushown bijgewerkt, rekening te houden met de menu 's, de nieuwe staat.,, - (b) {als (menu' s.Zelf. Ismenushown) {[zelf togglemenu]; self.ismenushown = ja;}}, stap 2: menu 's, laten we beginnen, menucomponent, in onze standpunten voor de verwerking.Het dossier ViewController. m,   plus invoer, invoer, de verklaring van de #. "Menucomponent. H", in particuliere, verantwoordelijke, uitbreiding van de klas, verklaringen, menucomponent, de aard van de goederen, menucomponent,   menu 's, de interface, @ @ eigenschappen () (niet - nucleaire, sterke) menucomponent * * * * * * * menucomponent; @, we starten, voordat de menu' s, laten we tot de erkenning, glijdende gebaren te maken zal opsporen en verstop het menu.We doen dit in viewDidLoad oog voor de,,,,, - (") viewDidLoad {[super viewDidLoad]; uiswipegesturerecognizer * * * * * * * showmenugesture = [] [uiswipegesturerecognizer toewijzing initwithtarget:












Previous:
Next Page: