App maken: ook jij kunt het leren!

 

de iOS Academie Forums

Forums - App-ontwikkeling - Swift en iOS: animate border with

David  David heeft nog geen Studiekaart. Klokje28 feb 2015, 11:54
Avatar
Avatar
Berichten:95


ik heb een UIButton op het scherm waarvan ik een rondje gemaakt heb. het idee is dat de UIbutton langzaam kleiner word naarmate de tijd verstreken word (maar de knop moet wel even groot blijven om in te drukken) 

 

dus ik dacht in animate the borderwith, maar dat doet die niet. ik heb het ook al met UIlabel geprobeerd om die er in toe te voegen, en dan de groote van de UIlabel veranderen. maar dat doet die ook niet.

 

hij veranderd the borderwith wel (maar dat animate die niet)

 

weet iemand hoe ik dit kan oplossen?

 

david

Reageer


Admin Roelf  Klokje28 feb 2015, 12:12
Avatar


David,

Er zijn, zoals altijd, een paar oplossingen.

Wat je zou kunnen doen, is de button in een view plaatsen. In die view teken je (met drawRect) een cirkel. Vervolgens maak je de "cirkel"-view steeds kleiner, waardoor (wel aspect fill gebruiken) de cirkel ook steeds kleiner wordt.

Let wel op: als je Auto Layout gebruikt, kun je niet eenvoudigweg het frame van de view kleiner maken. Je moet dan de Auto Layout Constraints aanpassen (alle constraints voor je view opvragen, vervolgens de juiste constraint(s) wijzigen en alle constraints in één keer toewijzen).

Succes!

 

Reageer

Goed advies! 1 persoon vindt dit goed advies.

David  David heeft nog geen Studiekaart. Klokje01 mrt 2015, 11:47
Avatar
Avatar
Berichten:95


bedankt voor je snelle reactie Roelf.

 

Ik heb het geprobeerd met drawrect, maar ik snap er helemaal niks van, heb op internet ook al gezocht van stakoverflow tot developer apple. maar krijg niet iets gevonden waardoor ik het nu wel snap. 

zijn er ook nog andere manieren om te kunnen doen? want van deze manier snap ik niet zoveel.

 

 

david

 

Reageer


David  David heeft nog geen Studiekaart. Klokje01 mrt 2015, 14:48
Avatar
Avatar
Berichten:95


oplossing gevonden:D

 

let progressLine = UIView()

        progressLine.frame = CGRectMake(0, 0, 100, 100)

        progressLine.layer.borderColor = UIColor.redColor().CGColor

        progressLine.layer.borderWidth = 4;

        progressLine.backgroundColor = UIColor.blackColor()

        progressLine.layer.masksToBounds = true

        progressLine.layer.cornerRadius = 50

        

    

        

        

        let animateStrokeEnd = CABasicAnimation(keyPath: "borderWidth")

        animateStrokeEnd.duration = 8.0

        animateStrokeEnd.fromValue = 2

        animateStrokeEnd.toValue = 40

        

        

        

       

        view.addSubview(progressLine)

        

        // add the animation

        progressLine.layer.addAnimation(animateStrokeEnd, forKey: "")

 

 

 

Reageer

Leuk! 1 persoon vindt vindt dit leuk.