Chแบฏc chแบฏn, ฤรขy lร tแปng quan chi tiแบฟt vแป cรกch bแบกn cรณ thแป thay ฤแปi kรญch thฦฐแปc cแปงa SwiftUI Switch trong Swift.
SwiftUI lร framework cแปงa Apple ฤแป xรขy dแปฑng giao diแปn ngฦฐแปi dรนng trรชn tแบฅt cแบฃ cรกc nแปn tแบฃng cแปงa Apple vแปi sแปฉc mแบกnh cแปงa Swift. ฤรดi khi, cรกc nhร phรกt triแปn cรณ thแป cแบงn phแบฃi ฤiแปu chแปnh kรญch thฦฐแปc cแปงa cรกc thร nh phแบงn giao diแปn ngฦฐแปi dรนng cแปฅ thแป, chแบณng hแบกn nhฦฐ mแปt nรบt chuyแปn. Theo mแบทc ฤแปnh, SwiftUI khรดng cho phรฉp thay ฤแปi trแปฑc tiแบฟp kรญch thฦฐแปc cแปงa Switch, nhฦฐng chรบng ta cรณ thแป sแปญ dแปฅng mแปt sแป cรกch giแบฃi quyแบฟt ฤแป ฤแบกt ฤฦฐแปฃc ฤiแปu nร y.
Hรฃy ฤi sรขu vร o giแบฃi phรกp cho vแบฅn ฤแป.
Tแบกo mแปt cรดng tแบฏc tรนy chแปnh trong SwiftUI
ฤแป ฤiแปu chแปnh kรญch thฦฐแปc cแปงa Switch trong SwiftUI, mแปt cรกch tiแบฟp cแบญn lร tแบกo Switch tรนy chแปnh. ฤiแปu nร y cho phรฉp bแบกn cรณ toร n quyแปn kiแปm soรกt hรฌnh thแปฉc vร kรญch thฦฐแปc cแปงa Switch.
ฤรขy lร mแปt vรญ dแปฅ vแป mรฃ tแบกo mแปt cรดng tแบฏc tรนy chแปnh:
struct CustomSwitch: View { @Binding var isOn: Bool var body: some View { Button(action: { self.isOn.toggle() }) { Rectangle() .fill(self.isOn ? Color.green : Color.gray) .frame(width: 50, height: 30) .overlay(Circle() .fill(Color.white) .offset(x: self.isOn ? 10 : -10), alignment: self.isOn ? .trailing : .leading) .cornerRadius(15) .animation(.spring()) } } }
Hiแปu mรฃ chuyแปn ฤแปi tรนy chแปnh
Hรฃy phรขn tรญch xem ฤoแบกn mรฃ nร y lร m gรฌ:
- Cแบฅu trรบc CustomSwitch: ฤiแปu nร y xรกc ฤแปnh Chแบฟ ฤแป xem SwiftUI tรนy chแปnh cแปงa chรบng tรดi. Nรณ cรณ liรชn kแบฟt vแปi giรก trแป boolean โ trแบกng thรกi cแปงa switch.
- Hร nh ฤแปng cแปงa nรบt: Khแปi mรฃ Swift nร y chแป ฤแปnh hร nh vi khi nhแบฅn nรบt. แป ฤรขy, chแป cแบงn chuyแปn trแบกng thรกi โisOnโ.
- Hรฌnh chแปฏ nhแบญt: Mแปt phiรชn bแบฃn cแบฅu trรบc Hรฌnh chแปฏ nhแบญt cแปงa SwiftUI, xรกc ฤแปnh cรกc thuแปc tรญnh cแปงa hรฌnh dแบกng.
- Tรด mร u: Mร u sแบฏc cแปงa Hรฌnh chแปฏ nhแบญt phแปฅ thuแปc vร o viแปc โisOnโ lร ฤรบng hay sai.
- Frame: Cรดng cแปฅ sแปญa ฤแปi khung แป ฤรขy cho biแบฟt chiแปu rแปng vร chiแปu cao cแปงa cรดng tแบฏc tรนy chแปnh.
- Lแปp phแปง: Cรดng cแปฅ sแปญa ฤแปi lแปp phแปง cho phรฉp bแบกn xแบฟp mแปt Chแบฟ ฤแป xem SwiftUI khรกc lรชn trรชn chแบฟ ฤแป xem hiแปn cรณ - แป ฤรขy, Vรฒng trรฒn mร u trแบฏng ฤรณng vai trรฒ lร nรบm chuyแปn ฤแปi.
- Bรน lแบกi: Cรดng cแปฅ sแปญa ฤแปi offset ฤฦฐแปฃc sแปญ dแปฅng แป ฤรขy ฤแป di chuyแปn Vรฒng trรฒn tรนy thuแปc vร o viแปc โisOnโ lร ฤรบng hay sai, tแบกo แบฃo giรกc rแบฑng cรดng tแบฏc ฤang bแบญt.
- bรกn kรญnh gรณc: ฤiแปu nร y รกp dแปฅng lร m trรฒn cรกc gรณc cแปงa Hรฌnh chแปฏ nhแบญt bรชn dฦฐแปi.
- hoแบกt hรฌnh: Cรดng cแปฅ sแปญa ฤแปi hoแบกt แบฃnh รกp dแปฅng hoแบกt แบฃnh spring() cho toร n bแป Nรบt โ vรฌ vแบญy khi bแบกn chuyแปn ฤแปi, nรณ sแบฝ chuyแปn ฤแปi trฦกn tru.
Tแปng kแบฟt
Khแบฃ nฤng tรนy chแปnh kรญch thฦฐแปc cแปงa SwiftUI Switch cรณ thแป lร mแปt lแปฃi thแบฟ khi ฤiแปu chแปnh giao diแปn ngฦฐแปi dรนng ฤแป phรน hแปฃp vแปi nhu cแบงu แปฉng dแปฅng cแปฅ thแป. Chรบng tรดi ฤรฃ hแปc ฤฦฐแปฃc mแปt cรกch ฤแป ฤแบกt ฤฦฐแปฃc ฤiแปu nร y bแบฑng cรกch tแบกo mแปt Cรดng tแบฏc tรนy chแปnh. Chรบc mแปซng mรฃ hรณa!
Ghi nhแป: SwiftUI khรก linh hoแบกt vร cรณ thแป tรนy chแปnh. Vui lรฒng ฤiแปu chแปnh cรกc giรก trแป vร thuแปc tรญnh trong mรฃ แป trรชn ฤแป phรน hแปฃp hฦกn vแปi nhu cแบงu thiแบฟt kแบฟ vร dแปฑ รกn cแปงa bแบกn. Nแบฟu bแบกn cแบงn thay ฤแปi kรญch thฦฐแปc cแปงa bแบฅt kแปณ thร nh phแบงn giao diแปn ngฦฐแปi dรนng nร o khรกc, phฦฐฦกng phรกp tแบกo tรนy chแปnh cรณ thแป ฤฦฐแปฃc รกp dแปฅng theo cรกch tฦฐฦกng tแปฑ.