ma reggel láttam egy gyönyörű tweet @ jesse_squires:

#gyors tipp: Használja didSet az IBOutlets beállítani nézetek helyett tömés kódot viewDidLoad. Sokkal tisztább. Még mindig csak egyszer hívott.

Beállítások színek, betűtípusok, és a hozzáférhetőség UI elemek apps mindig fáj. Ideális esetben ez a storyboard-ban történne, de a storyboard színkezelése elég szörnyű (ennek egyik módja az Xcode színpalettán keresztül), és a fejlettebb hozzáférhetőségi dolgok még a storyboard-ban sem végezhetők el.

tehát én személy szerint inkább ezt a kódot – sokkal könnyebb látni, ahol az összes szín / font / kisegítő / stb változtatásokat kell tenni, ha az alkalmazás újra tervezték. Gyakran látom, hogy ezt egy szuper hosszú viewDidLoad-ra fordítják, amint azt Jesse megemlíti, amelyet egy vagy több funkcióba próbálok kibontani a Swift privát kiterjesztésében:

gyors

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
osztály ViewController: UIViewController {
@Iboutlet gyenge var myLabel: UILabel!
@IBOutlet gyenge var myOtherLabel: UILabel!
@IBOutlet gyenge var myButton: UIButton!
felülírás func viewDidLoad() {
super.viewDidLoad()
// Kivonat ezt egy privát funkció
/ / tartani viewDidLoad rövid
configureStyling()
}
}
// MARK: UI Styling
privát kiterjesztés ViewController {
func configureStyling() {
myLabel.textColor = UIColor.purpleColor ()
myOtherLabel.textColor = UIColor.yellowColor ()
myButton.tintColor = UIColor.magentaColor()
}
}

de nagyon szeretem Jesse megoldásának olvashatóságát és egyszerűségét:

gyors

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
osztály ViewController: UIViewController {
@Iboutlet gyenge 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()
}
}

itt az ideje a refaktornak!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.