ๅฝ็ถ๏ผ่ฟ้่ฏฆ็ปๆฆ่ฟฐไบๅฆไฝๅจ Swift ไธญๆดๆน SwiftUI Switch ็ๅคงๅฐใ
SwiftUI ๆฏ Apple ็ๆกๆถ๏ผๆจๅจๅฉ็จ Swift ็ๅผบๅคงๅ่ฝ่ทจๆๆ Apple ๅนณๅฐๆๅปบ็จๆท็้ขใ ๆๆถ๏ผๅผๅไบบๅๅฏ่ฝไผ้ๅฐ้่ฆ่ฐๆด็นๅฎ UI ็ปไปถ๏ผไพๅฆๅผๅ ณ๏ผๅคงๅฐ็ๆ ๅตใ ้ป่ฎคๆ ๅตไธ๏ผSwiftUI ไธๅ ่ฎธ็ดๆฅๆดๆน Switch ็ๅคงๅฐ๏ผไฝๆไปฌๅฏไปฅไฝฟ็จไธไบ่งฃๅณๆนๆณๆฅๅฎ็ฐ่ฟไธ็นใ
่ฎฉๆไปฌๆทฑๅ ฅๆข่ฎจ้ฎ้ข็่งฃๅณๆนๆกใ
ๅจ SwiftUI ไธญๅๅปบ่ชๅฎไนๅผๅ ณ
่ฆ่ฐๆด SwiftUI ไธญ Switch ็ๅคงๅฐ๏ผไธ็งๆนๆณๆฏๅๅปบ่ชๅฎไน Switchใ ่ฟไฝฟๆจๅฏไปฅๅฎๅ จๆงๅถ Switch ็ๅค่งๅๅฐบๅฏธใ
ไปฅไธๆฏๅๅปบ่ชๅฎไนๅผๅ ณ็ไปฃ็ ็คบไพ๏ผ
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()) } } }
ไบ่งฃ่ชๅฎไนๅผๅ ณไปฃ็
่ฎฉๆไปฌๅ่งฃไธไธ่ฟๆฎตไปฃ็ ็ไฝ็จ๏ผ
- CustomSwitch ็ปๆ๏ผ ่ฟๅฎไนไบๆไปฌ็่ชๅฎไน SwiftUI ่งๅพใ ๅฎ็ปๅฎๅฐไธไธชๅธๅฐๅผโโๅผๅ ณ็็ถๆใ
- ๆ้ฎๅจไฝ๏ผ ๆญค Swift ไปฃ็ ๅๆๅฎๆไธๆ้ฎๆถ็่กไธบใ ๅจ่ฟ้๏ผๅช้ๅๆขโisOnโ็ถๆๅณๅฏใ
- ้ฟๆนๅฝข๏ผ SwiftUI ็ฉๅฝข็ปๆ็ๅฎไพ๏ผๅฎไนๅฝข็ถ็ๅฑๆงใ
- ๅกซ่ฒ๏ผ ็ฉๅฝข็้ข่ฒๅๅณไบโisOnโๆฏ true ่ฟๆฏ falseใ
- ๅคๆก๏ผ ่ฟ้็ๆกๆถไฟฎ้ฅฐ็ฌฆ่กจ็คบ่ชๅฎไนๅผๅ ณ็ๅฎฝๅบฆๅ้ซๅบฆใ
- ่ฆ็๏ผ ่ฆ็ไฟฎๆนๅจๅ ่ฎธๆจๅจ็ฐๆ่งๅพไนไธๅ ๅ ๅฆไธไธช SwiftUI ่งๅพ - ่ฟ้ๆฏไธไธช็จไฝๅผๅ ณๆ้ฎ็็ฝ่ฒๅๅใ
- ๅ็งป้๏ผ ๆญคๅคไฝฟ็จๅ็งปไฟฎๆนๅจๆ นๆฎโisOnโๆฏ true ่ฟๆฏ false ๆฅ็งปๅจ Circle๏ผไป่ไบง็ๅผๅ ณๆญฃๅจๅๆข็้่งใ
- ่งๅๅพ๏ผ ่ฟไผๅฐๅ่งๅบ็จไบๅบ็ก็ฉๅฝข็่งใ
- ๅจ็ป็๏ผ ๅจ็ปไฟฎๆนๅจๅฐ spring() ๅจ็ปๅบ็จไบๆดไธชๆ้ฎ - ๅ ๆญคๅฝๆจๅๆขๆถ๏ผๅฎๅฐๅนณๆปๅๆขใ
ๆป็ป
ๅจๅฎๅถ็จๆท็้ขไปฅๆปก่ถณ็นๅฎๅบ็จ็จๅบ้ๆฑๆถ๏ผ่ฝๅค่ชๅฎไน SwiftUI Switch ็ๅคงๅฐๅฏ่ฝๆฏไธไธชไผๅฟใ ๆไปฌๅทฒ็ปไบ่งฃไบไธ็ง้่ฟๅๅปบ่ชๅฎไน Switch ๆฅๅฎ็ฐๆญค็ฎๆ ็ๆนๆณใ ๅฟซไน็ผ็ ๏ผ
่ฎฐๅพ๏ผ SwiftUI ้ๅธธ็ตๆดปไธๅฏๅฎๅถใ ่ฏท้ๆ่ฐๆดไธ้ขไปฃ็ ไธญ็ๅผๅๅฑๆง๏ผไปฅๆดๅฅฝๅฐๆปก่ถณๆจ็้กน็ฎๅ่ฎพ่ฎก้ๆฑใ ๅฆๆๆจ้่ฆๆดๆนไปปไฝๅ ถไป UI ็ปไปถ็ๅคงๅฐ๏ผๅฏไปฅไปฅๅ ไน็ธๅ็ๆนๅผๅบ็จ่ชๅฎไนๅๅปบๆนๆณใ