- Published on
SwiftUI-da Slider
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Hammaga xush kelibsiz! Mening ismim Nick, bu β Swiftful Thinking kanali.
Bu videoda Slider komponentini o'rganamiz. Slider β foydalanuvchi bir qiymatdan ikkinchisiga siljitishi mumkin bo'lgan komponent. U diapazon, qadam va ranglar bilan sozlanadi.
Yangi fayl yaratish
Navigatorda o'ng tugma bosib yangi SwiftUI fayli yarating. Uni SliderBootcamp deb nomlang va Create tugmasini bosing. Canvas-da Resume bosing.
1. Oddiy Slider
struct SliderBootcamp: View {
@State var sliderValue: Double = 10
var body: some View {
VStack(spacing: 20) {
Text("Reyting: \(sliderValue)")
Slider(value: $sliderValue)
.accentColor(.red)
}
.padding()
}
}
Standart holatda slider 0 dan 1.0 gacha ishlaydi. Rangni .accentColor() bilan o'zgartirish mumkin.
2. Diapazon belgilash β in:
Slider(value: $sliderValue, in: 0...100)
Endi slider 0 dan 100 gacha ishlaydi. Boshlang'ich qiymat sliderValue = 10 bo'lgani uchun chap tomonda joylashadi.
3. Qadam belgilash β step:
Slider har bir harakat uchun qancha o'zgarishini step bilan belgilash mumkin. Masalan, faqat butun sonlar (1, 2, 3, 4, 5):
Slider(value: $sliderValue, in: 1...5, step: 1.0)
Yoki yarim sonlar (1.0, 1.5, 2.0 ...):
Slider(value: $sliderValue, in: 1...5, step: 0.5)
4. Sonni formatlash
Ko'p kasr o'rinlaridan qochish uchun String(format:) ishlatiladi:
// 2 kasr o'rin: 3.50
Text(String(format: "%.2f", sliderValue))
// 1 kasr o'rin: 3.5
Text(String(format: "%.1f", sliderValue))
// 0 kasr o'rin: 3
Text(String(format: "%.0f", sliderValue))
| Format | Ko'rinishi |
|---|---|
%.0f | 3 |
%.1f | 3.5 |
%.2f | 3.50 |
5. To'liq sozlangan Slider
minimumValueLabel, maximumValueLabel va onEditingChanged parametrlari bilan:
struct SliderBootcamp: View {
@State var sliderValue: Double = 3
@State var color: Color = .red
var body: some View {
VStack(spacing: 20) {
Text(String(format: "%.0f", sliderValue))
.foregroundColor(color)
.font(.headline)
Slider(
value: $sliderValue,
in: 1...5,
step: 1.0,
onEditingChanged: { _ in
// Slider o'zgartirilganda chaqiriladi
color = .green
},
minimumValueLabel: Text("1")
.font(.largeTitle)
.foregroundColor(.orange),
maximumValueLabel: Text("5")
.font(.largeTitle)
.foregroundColor(.orange),
label: { Text("Reyting") }
)
.accentColor(.red)
}
.padding(50)
}
}
minimumValueLabelβ sliderning chap tomonida ko'rinadigan elementmaximumValueLabelβ sliderning o'ng tomonida ko'rinadigan elementonEditingChangedβ foydalanuvchi slider bilan ishlashni boshlaganda yoki tugatganda chaqiriladilabelβ ba'zi stillarda ko'rinadigan sarlavha (compact rejimda ko'rinmasligi mumkin)
To'liq kod
struct SliderBootcamp: View {
@State var sliderValue: Double = 3
@State var color: Color = .red
var body: some View {
VStack(spacing: 30) {
Text("Reyting: \(String(format: "%.0f", sliderValue))")
.font(.title)
.foregroundColor(color)
// Oddiy slider
Slider(value: $sliderValue, in: 0...100)
.accentColor(.red)
// Qadam va labellar bilan
Slider(
value: $sliderValue,
in: 1...5,
step: 1.0,
onEditingChanged: { _ in
color = .green
},
minimumValueLabel: Text("1")
.font(.largeTitle)
.foregroundColor(.orange),
maximumValueLabel: Text("5")
.font(.largeTitle)
.foregroundColor(.orange),
label: { Text("Reyting") }
)
.accentColor(.red)
}
.padding(50)
}
}
Xulosa
Bu videoda o'rgandik:
Slider(value:)β oddiy slider,0dan1.0gachain: min...maxβ diapazonni belgilashstep:β har bir harakat uchun o'zgarish miqdori%.0f/%.1f/%.2fβ kasr sonlarni chiroyli formatlashminimumValueLabel/maximumValueLabelβ chap va o'ng tomondagi belgilaronEditingChangedβ slider o'zgartirilganda bajariladigan amal.accentColor()β slider rangini o'zgartirish
Slider baholash (1-5 yulduz), ovoz balandligi, yorqinlik va shunga o'xshash sozlamalarda juda ko'p ishlatiladi.
Rahmat tomosha qilganingiz uchun! Men β Nick, bu Swiftful Thinking. Keyingi videoda ko'rishamiz!