็ถ็ถ๏ผ้่ฃก่ฉณ็ดฐๆฆ่ฟฐๅฆไฝๅจ 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 ๅ ไปถ็ๅคงๅฐ๏ผๅฏไปฅไปฅๅนพไน็ธๅ็ๆนๅผๅฅ็จ่ช่จๅปบ็ซๆนๆณใ