i morges så jeg en smuk kvidre fra @jesse_kræver:

#hurtigt tip: Brug didSet på dine IBOutlets til at konfigurere visninger i stedet for at proppe kode til visning. Meget renere. Stadig kaldes kun en gang.

– Jesse væbnere (@jesse_krævere) juli 29, 2015

indstillinger farver, skrifttyper og tilgængelighed for UI elementer i apps er altid i smerte. Ideelt set ville dette ske i storyboardet, men farvestyring i storyboardet er ret forfærdeligt (en måde at afbøde dette på er gennem en kode farvepalet), og mere avancerede tilgængeligheds ting kan ikke engang gøres i storyboardet.

så jeg foretrækker personligt at gøre dette i kode – meget lettere at se, hvor alle farver / skrifttype / tilgængelighed / etc-ændringer skal foretages, når Appen er omdesignet. Jeg ser ofte dette oversat til en super lang visningsidload som Jesse nævner, som jeg forsøger at udtrække til en eller flere funktioner i privat udvidelse i hurtig som denne:

hurtig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

import UIKit
klasse Visningskontroller: Uiviekontroller {
@IBOutlet svag var myLabel: UILabel!
@IBOutlet svag var myOtherLabel: UILabel!
@IBOutlet svag var myButton: UIButton!
tilsidesætte func visionidload() {
super.visningdidload()
// uddrag dette til en privat funktion
/ / for at holde visningsidload kort
configureStyling()
}
}
// mærke: UI Styling
privat udvidelse Visningskontroller {
func configureStyling() {
myLabel.tekstfarve = UIColor.purpleColor ()
myOtherLabel.tekstfarve = UIColor.gulfarve ()
myButton.tintColor = UIColor.magentaColor()
}
}

men jeg elsker virkelig læsbarheden og enkelheden i Jesse ‘ s løsning:

hurtig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

import UIKit
klasse Visningskontroller: Uiviekontroller {
@IBOutlet svag var myLabel: UILabel! {
didSet {
myLabel.textColor = UIColor.purpleColor()
}
}
@IBOutlet weak var myOtherLabel: UILabel! {
didSet {
myOtherLabel.textColor = UIColor.yellowColor()
}
}
@IBOutlet weak var myButton: UIButton! {
didSet {
myButton.tintColor = UIColor.magentaColor()
}
}
override func viewDidLoad() {
super.visningdidload()
}
}

tid til refactor!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.