Programim dhe zhvillim, javascript, python, php, html

Animimi/lëvizja e pamjeve nën përdorimin e Autolayout

Unë dua të lëviz një pamje nga një pozicion në tjetrin, mund ta zbatoj duke përdorur

self.view.center = CGPointMake(100, 200);

megjithatë, nëse projekti përdor Autolayout, atëherë pamja do të kthehet në pozicionin origjinal pas ekzekutimit:

[self.view.superview setNeedsLayout];

atëherë si të zhvendoset një pamje në një pozicion të ri?


Përgjigjet:


1

Ju duhet të ndryshoni kufizimet nëse jeni duke përdorur autoLayout. Mënyra që sugjerohet është të bëni një dalje në kontrolluesin tuaj të kufizimit, pastaj ndryshoni konstantën e kufizimit. Nëse keni kohë, unë patjetër do t'ju rekomandoja të shkoni këtu dhe të shikoni "Layout Auto sipas Shembullit" ose "Praktikat më të mira për Mastering Auto Layout". Ata më ndihmuan shumë. Mendoj se pika për t'u hequr është se me autoLayout, nuk mendoni më në terma të kornizave. Pra, vendosja e qendrës thjesht nuk funksionon me paraqitjen automatike. Gjithçka ka të bëjë me mënyrën sesi pikëpamjet lidhen me njëra-tjetrën.

06.12.2012
  • duket sikur përdorimi i paraqitjes automatike është më i vështirë sesa përdorimi i kornizës për të lëvizur një pamje, pasi duhet të marr të gjitha daljet e asaj pamjeje 06.12.2012
  • Në fillim është më e vështirë, por në fakt kam filluar të më pëlqejë më shumë. Ju mund të bëni shumë më tepër me të 06.12.2012
  • Së dyti @ClintWarner këtu: Autolayout mund të jetë pak më shumë përpjekje për t'u konfiguruar fillimisht, por paguan dividentë të mëdhenj për sa i përket mirëmbajtjes dhe lexueshmërisë. Tani jam mësuar të zbatoj kufizime, puna me matematikën e kornizës duket e lodhshme dhe frustruese. 07.12.2012
  • Po e kërkoja këtë përgjigje për një kohë të gjatë. Ti më shpëtove ditën! 16.08.2013
  • Përgjigja e poshtme është e saktë. Nëse nuk keni kohë për një video, thjesht shikoni përgjigjen e mëposhtme. 30.01.2014

  • 2

    Me AutoLayout të aktivizuar, ne duhet FORGET FRAMES dhe vetëm CONSIDER CONSTRAINTS. Po, për animimin gjithashtu nuk mund të ndryshoni më kornizën ose qendrën, pamjet do të kthehen në pozicionin e tyre origjinal kur thirret faqosja.

    Në vend të kësaj ju duhet consider changing the constant value of the constraint për të marrë të njëjtin efekt.

    Konsideroni një ndërfaqe përdoruesi si imazhi i dhënë më poshtë. Unë kam një pamje imazhi me një 20 points leading space from it's superview që do të thotë se ka një kufizim hapësire horizontale me pamjen e tij të jashtme. Gjithashtu kam tre kufizime të tjera të bashkangjitura në pamjen e imazhit, sipër, gjerësi dhe lartësi.

    Unë do t'ju tregoj se si mund ta animojmë imazhin nga e majta në të djathtë siç tregohet në imazh.

    Krijo IBOutlet për kufizimet që duhet të animojmë. Këtu po marrim vetëm kufizim hapësinor horizontal, që mjafton për ta zhvendosur këtë pamje nga e majta në të djathtë.

    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    @property (weak, nonatomic) IBOutlet NSLayoutConstraint *horizontalSpaceConstraint;
    

    fut përshkrimin e imazhit këtu

    Brenda veprimit Go Away, duhet të përditësojmë vlerën konstante të këtij kufizimi.

    - (IBAction)moveFrontAction:(id)sender {
        self.horizontalSpaceConstraint.constant = 220;
    
        [UIView animateWithDuration:0.5 animations:^{
             [self.imageView layoutIfNeeded];
        }];
    }
    

    Tani pamja duhet të zhvendoset në fundin e djathtë. Unë thjesht po e bëj këtë brenda një blloku animacioni, kështu që ne do të jemi në gjendje të shohim një animacion të bukur nga e majta në të djathtë dhe anasjelltas. Në prodhim, ne nuk duhet të kodojmë fort vlerat si p.sh. Kjo. Thjesht duke e bërë këtu për ta bërë të qartë konceptin.

    fut përshkrimin e imazhit këtu

    Brenda veprimit Come Back, ne po rivendosim përsëri konstantën në vlerën e saj origjinale, kështu që ju mund të shihni imazhin portokalli që animohet përsëri në vendndodhjen origjinale.

    - (IBAction)moveBackAction:(id)sender {
        self.horizontalSpaceConstraint.constant = 20;
    
        [UIView animateWithDuration:0.5 animations:^{
            [self.imageView layoutIfNeeded];
        }];
    }
    
    12.11.2013
  • Hey user1687717 dëshiron të lëvizë pamjen duke përdorur metodat e prekjes së pamjes duke mos përdorur stilin e animuar.. 20.04.2015
  • Përpara se të ndryshoni konstantën e një kufizimi, është më mirë të thërrisni [self.imageView layoutIfNeeded] . këtu nuk ka asnjë ndikim, por në projektet reale mund të ketë animacione të tjera në ekzekutim. kështu që pamja juaj e imazhit duhet të tregojë kornizën tuaj përfundimtare përpara se të animohet.- (IBAction)moveBackAction:(id)sender { [self.imageView layoutIfNeeded]; self.horizontalSpaceConstraint.constant = 20; [UIView animateWithDuration:0.5 animations:^{ [self.imageView layoutIfNeeded]; }]; } 31.12.2016
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..