- Published on
Xcode loyihasiga haptics va vibratsiya qo'shish
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Haptics β bu vibratsiya uchun texnik atama. iOS ilovalarida foydalanuvchi biror tugmani bosganda yoki xato xabari kelganda qurilmani titratish mumkin. Bu, atigi bir necha qator kod bilan, foydalanuvchi tajribasini sezilarli yaxshilaydi.
Muhim eslatma: Vibratsiyani sinab ko'rish uchun ilovani haqiqiy qurilmada ishga tushirish kerak β simulyatorda his qilib bo'lmaydi.
HapticManager: Singleton klass
Oldingi videodagi SoundManager kabi, bu yerda ham Singleton pattern ishlatamiz β bitta nusxa butun ilova bo'ylab ishlatiladi:
class HapticManager {
static let instance = HapticManager()
func notification(type: UINotificationFeedbackGenerator.FeedbackType) {
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(type)
}
func impact(style: UIImpactFeedbackGenerator.FeedbackStyle) {
let generator = UIImpactFeedbackGenerator(style: style)
generator.impactOccurred()
}
}
Ikkita alohida funksiya yaratildi, chunki Apple'ning o'zi haptics'ni ikkiga ajratadi:
notificationβ muvaffaqiyat, ogohlantirish, xato kabi holat xabarlari uchunimpactβ jismoniy "zarba" sezgisi uchun
View β barcha variantlar
struct HapticsBootcamp: View {
var body: some View {
VStack(spacing: 20) {
// Notification turlari
Button("Success") {
HapticManager.instance.notification(type: .success)
}
Button("Warning") {
HapticManager.instance.notification(type: .warning)
}
Button("Error") {
HapticManager.instance.notification(type: .error)
}
Divider()
// Impact turlari
Button("Soft") {
HapticManager.instance.impact(style: .soft)
}
Button("Light") {
HapticManager.instance.impact(style: .light)
}
Button("Medium") {
HapticManager.instance.impact(style: .medium)
}
Button("Rigid") {
HapticManager.instance.impact(style: .rigid)
}
Button("Heavy") {
HapticManager.instance.impact(style: .heavy)
}
}
}
}
Qaysi variantni qachon ishlatish kerak
Notification turlari (UINotificationFeedbackGenerator):
| Tur | Qachon ishlatiladi |
|---|---|
.success | Amal muvaffaqiyatli tugaganda |
.warning | Ogohlantirish paydo bo'lganda |
.error | Xato yuz berganda |
Impact turlari (UIImpactFeedbackGenerator):
| Tur | Tavsif |
|---|---|
.soft | Eng yengil |
.light | Yengil |
.medium | O'rtacha |
.rigid | Qattiqroq |
.heavy | Eng kuchli |
Haqiqiy qurilmada sinash
Qurilmani kompyuterga ulang, Xcode'da yuqori chap burchakdagi simulyator ro'yxatidan qurilmangizni tanlang, HapticsBootcampni ilovaning birinchi ekrani qilib qo'ying, va "Run" tugmasini bosing. Har bir tugmani bosganingizda turlicha vibratsiya his qilasiz.
Xulosa
Apple'ning tayyor vibratsiya variantlari (success, error, medium, heavy va boshqalar) ko'pchilik holatlarda yetarli. Maxsus vibratsiya yaratish ham mumkin, ammo bu standart variantlar keng qamrovli va bir necha qator kod bilan ilovangizga juda yaxshi foydalanuvchi tajribasi qo'shadi.
HapticManager.instance.notification(type: .success) yoki HapticManager.instance.impact(style: .medium) β ilovangizning istalgan joyidan chaqirishingiz mumkin.