This morning I saw a beautiful tweet from @jesse_squires:

#Swift-Vihje: Käytä didsetiä Ibouttleteissasi määrittääksesi näkymiä sen sijaan, että sulloisit koodin viewdidloadiin. Paljon puhtaampaa. Soitin vain kerran.

– Jesse Squires (@jesse_squires) July 29, 2015

Asetukset värit, fontit ja sovellusten KÄYTTÖLIITTYMÄELEMENTTIEN saatavuus ovat aina tuskallisia. Ihannetapauksessa tämä tapahtuisi kuvakäsikirjoituksessa, mutta värien hallinta kuvakäsikirjoituksessa on melko kamalaa (yksi tapa lieventää tätä on Xcode-väripaletin kautta), ja kehittyneempiä esteettömyysjuttuja ei voida edes tehdä kuvakäsikirjoituksessa.

joten itse teen tämän mieluummin koodilla – paljon helpompi nähdä, missä kaikki värit / fontti / esteettömyys / etc-muutokset täytyy tehdä, kun sovellusta suunnitellaan uudelleen. Näen usein tämän käännettynä super long viewdidloadiksi, kuten Jesse mainitsee, jonka yritän purkaa yhdeksi tai useammaksi toiminnoksi yksityisessä laajennuksessa Swiftissä, kuten tämä:

Swift

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

tuo UIKit
class ViewController: UIViewController {
@IBOutlet weak var myLabel: UILabel!
@IBOutlet weak var myOtherLabel: UILabel!
@IBOutlet heikko var myButton: UIButton!
override func viewDidLoad () {
super.viewDidLoad()
// Pura tämä yksityiseen funktioon
/ / pitääksesi viewdidloadin lyhyenä
configureStyling()
}
}
// merkki: UI Styling
private extension ViewController {
func configureStyling () {
myLabel.textColor = UIColor.purppuraväri ()
myOtherLabel.textColor = UIColor.keltaväri ()
myButton.tintColor = UIColor.magentaColor()
}
}

mutta rakastan Jessen ratkaisun luettavuutta ja yksinkertaisuutta.:

Swift

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

tuo UIKit
class ViewController: UIViewController {
@IBOutlet weak 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.viewDidLoad()
}
}

on refaktorin aika!

Vastaa

Sähköpostiosoitettasi ei julkaista.