- Published on
SwiftUI-da Tap Gesture β qanday qo'shish va sozlash
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Bu videoda biz Tap Gesture β ya'ni bosish imo-ishorasini ko'rib chiqamiz. Tap Gesture aslida Button bilan bir xil ishlaydi, lekin to'liq Button funksionalligisiz β shunchaki bosish harakatini aniqlaydi.
Ko'p SwiftUI dasturchilari Button o'rniga Tap Gesture ishlatishga o'tmoqda, chunki u yozish jihatidan ancha sodda va toza.
Asosiy sozlama β Button bilan taqqoslash
struct TapGestureBootcamp: View {
@State var isSelected: Bool = false
var body: some View {
VStack(spacing: 40) {
RoundedRectangle(cornerRadius: 25)
.foregroundColor(isSelected ? .green : .red)
.frame(height: 200)
// BUTTON β to'liq funksionallik bilan
Button {
isSelected.toggle()
} label: {
Text("Tugma")
.font(.headline)
.foregroundColor(.white)
.frame(height: 55)
.frame(maxWidth: .infinity)
.background(Color.blue)
.cornerRadius(25)
}
// TAP GESTURE β xuddi shunday natija, soddaroq yozilish
Text("Tap Gesture")
.font(.headline)
.foregroundColor(.white)
.frame(height: 55)
.frame(maxWidth: .infinity)
.background(Color.blue)
.cornerRadius(25)
.onTapGesture {
isSelected.toggle()
}
Spacer()
}
.padding(40)
}
}
Button va Tap Gesture farqi
Ikkalasi ham bir xil natija beradi β farq faqat bitta:
Button β bosilganda ko'rinishi bir zumga o'zgaradi (highlighted holat). Foydalanuvchi bosganini ko'radi.
Tap Gesture β highlighted holat yo'q. Bosilganda hech qanday vizual o'zgarish bo'lmaydi, lekin amal bajariladi.
// Button β bosib tursa ranglanadi (highlighted)
Button { isSelected.toggle() } label: {
Text("Tugma")
}
// Tap Gesture β highlighted yo'q, lekin ishlaydi
Text("Tap Gesture")
.onTapGesture {
isSelected.toggle()
}
Ko'pchilik foydalanuvchilar bu farqni sezmaydi. Lekin katta tugmalarda highlighted holat yaxshi β foydalanuvchi bosilganini his qiladi.
Ikki marta bosish β count parametri
count parametri bilan necha marta bosish kerakligini belgilash mumkin:
// Bir marta bosish (standart)
Text("Bir marta bos")
.onTapGesture {
isSelected.toggle()
}
// Ikki marta bosish β Instagram-dagi "like" kabi
Text("Ikki marta bos")
.onTapGesture(count: 2) {
isSelected.toggle()
}
// Besh marta bosish
Text("Besh marta bos")
.onTapGesture(count: 5) {
isSelected.toggle()
}
count: 2 β faqat ikki marta tez bosilganda amal bajariladi. Bir marta bosish hech narsa qilmaydi. Instagram-da rasmni ikki marta bosib yoqtirishni xuddi shu usul bilan amalga oshirish mumkin.
Qachon Button, qachon Tap Gesture?
| Holat | Ishlatish |
|---|---|
| Oddiy amal β faqat biror narsa bo'lsin | Tap Gesture β sodda va toza |
| Foydalanuvchi bosilganini his qilishi kerak | Button β highlighted holat bor |
| Navigatsiya paneli kichik tugmalari | Tap Gesture β highlighted ko'rinmaydi |
| Katta, muhim tugmalar | Button β vizual tasdiq muhim |
| Bosib ushlab turish animatsiyasi kerak | Button β buni Tap Gesture qila olmaydi |
| Ikki marta bosish kerak | Tap Gesture β count: 2 bilan |
Xulosa
// Oddiy holat β Tap Gesture yetarli
someView
.onTapGesture {
doSomething()
}
// Ikki marta bosish
someView
.onTapGesture(count: 2) {
doSomething()
}
Tap Gesture β button-ning sodda va toza muqobili. Agar faqat "bosildi" hodisasini aniqlash kerak bo'lsa, Tap Gesture yetarli. Agar highlighted holat, bosib ushlab turish yoki boshqa murakkab xatti-harakatlar kerak bo'lsa β Button ishlatgan ma'qul.
Rahmat, men Nick, bu Swiftful Thinking va keyingi videoda ko'rishguncha!