- Published on
SwiftfulUI: Vaqtingizni tejaydigan tayyor UI komponentlar
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
SwiftfulUI nima?
SwiftfulUI bu mening (Nick) o'zim yaratgan va ochiq kodli (open-source) qilib GitHub'ga joylagan paketim. Yillar davomida iOS ilovalarini yaratish jarayonida SwiftUI'da menga yetishmayotgan ba'zi qulayliklarni bitta kutubxonaga jamladim. Ushbu vositalar yordamida har kuni yoziladigan zerikarli va takrorlanuvchi kodlarni yozishdan qutulasiz.
1. Paketni o'rnatish
Paketni odatdagidek Xcode orqali qo'shamiz: https://GitHub.com/SwiftfulThinking/SwiftfulUI
Loyiha ichida esa quyidagicha chaqiramiz:
import SwiftfulUI
2. Eng foydali modifikatorlar
A) Orqa fon va chegaralar (Backgrounds & Borders)
Odatda tugmaga ham orqa fon rangi, ham chegara (border) va burchaklariga yumaloqlik (corner radius) berish uchun bir nechta qator kod yoziladi. SwiftfulUI bilan bu bitta qatorda hal bo'ladi:
Text("Kirish")
.padding()
.withBackgroundAndBorder(
backgroundColor: .blue,
borderColor: .red,
borderWidth: 2,
cornerRadius: 32
)
B) asButton() – Tugmalarning yangi avlodi
Standart Button yozish ko'pincha noqulay va uning ustiga bosilganda animatsiyasi (opacity) juda oddiy. asButton() orqali xohlagan View'ni juda chiroyli (kichrayadigan) tugmaga aylantira olasiz:
Text("Bosing")
.asButton(.press) {
// Bosilganda nima sodir bo'lishi
print("Tugma bosildi!")
}
C) GeometryReader o'rniga readingFrame()
GeometryReader SwiftUI'dagi eng katta og'riqlardan biri hisoblanadi. Chunki uni qo'shganingiz zahoti View'ning o'lchamlari buzilib, butun ekranni egallab oladi.
Men buni hal qilish uchun .readingFrame() ni yaratdim. U orqa fonda jimgina elementning o'lchamlarini o'lchaydi va UI'ni aslo buzmaydi:
Text("O'lchamni o'qish")
.readingFrame { frame in
print("Kenglik: \(frame.width)")
}
D) NonLazyVGrid va maxsus progress barlar
SwiftUI'ning o'zidagi LazyVGrid barcha ustunlarni (columns) bir xil hajmga majburlaydi. SwiftfulUI'dagi NonLazyVGrid yordamida har xil o'lchamdagi va chiroyli turuvchi katakchalarni yasash juda oson.
Shuningdek, tayyor Custom Progress Bar va Drag Gesture (surtish) animatsiyalari ham mavjud.
CustomProgressBar(
selection: 25,
range: 0...100,
backgroundColor: .gray.opacity(0.3),
foregroundColor: .blue
)
Xulosa
Agar siz iOS dasturchi sifatida ishlash tezligingizni oshirmoqchi bo'lsangiz, SwiftfulUI sizga juda asqotadi. U sizni har gal bitta ishni noldan yozish mashaqqatidan xalos etadi. Undagi yuzlab qo'shimcha imkoniyatlarni GitHub dagi hujjatlardan (Wiki) o'qib olishingiz mumkin.