- Published on
Canvas preview va simulator
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
Siz viewlarni (views) qurish davomida ularni tekshirish uchun canvas preview'dan foydalanib keldingiz. Ammo u Xcode oynasining o'ng tomoniga shunchaki nazar tashlashdan ancha ko'proq imkoniyatga ega. Ushbu darsda canvas preview va simulator'dan qanday samarali foydalanishni hamda ular kutilmaganda hamkorlik qilishni to'xtatganda nima qilish kerakligini ko'rib chiqamiz.
Canvas preview va simulator bir xil asosiy muammoni hal qiladi β "bu qanday ko'rinishga ega?" β ammo turli xil kontekstlarda. Preview tez, yengil va tartib (layout) hamda uslublarni (styling) tezkor o'zgartirish uchun juda mos keladi. Simulator-ni ishga tushirish ko'proq vaqt oladi, ammo u ilovaning haqiqiy kodini ishga tushiradi va tugmalarni bosish, navigatsiya hamda animatsiyalar kabi haqiqiy xatti-harakatlarni sinash uchun qulayroqdir.
Ushbu darsning oxiriga kelib siz o'z viewlaringizni turli xil qurilma o'lchamlari va rang sxemalarida preview qilishni, ilovangizni simulator-da ishga tushirishni va preview ishdan chiqqanda (bu baribir kun kelib sodir bo'ladi) nima qilish kerakligini bilib olasiz.
Canvas preview bilan ishlash
| Element | Vazifasi (Nima qiladi) |
|---|---|
#Preview { } | Xcode-ga uning ichidagi ko'rinishni canvas panelida render qilishni aytadigan Swift makrosi. Yangi SwiftUI fayllariga avtomatik ravishda qo'shiladi. |
Resume tugmasi | Preview to'xtatilgan (paused) holatda paydo bo'ladi. Oxirgi o'zgarishlar bilan preview'ni yangilash uchun uni bosing (yoki Option + Command + P tugmalarini bosing). |
Live Preview rejimi | Ko'rinishingizning interaktiv versiyasini ishga tushiradi β simulator'ni ochmasdan turib tugmalarni bosishingiz, ro'yxatlarni aylantirishingiz va animatsiyalarni faollashtirishingiz mumkin. |
Static preview | Standart (sukut bo'yicha) rejim β ko'rinishingizning lahzali suratini (snapshot) render qiladi. Tezroq yuklanadi va tartibni tekshirish uchun idealdir. |
β οΈ Preview ishdan chiqqanda:
Canvas panelidagi qizil xatolik ekrani odatda kodingizning qayeridadir kompilyatsiya xatosi borligini anglatadi. Xatolik xabarini tekshiring β u ko'pincha muammoni aniq ko'rsatib beradi. Agar preview qotib qolsa yoki yangilanmasa, uni majburan qayta ishga tushirish uchunOption + Command + Ptugmalarini bosing. Agar baribir ishlamasa, faylni yopib qaytadan ochib ko'ring.
Qo'shimcha preview konfiguratsiyalari
// Bir vaqtning o'zida yorug' va qorong'u rejimda preview qilish
#Preview("Light Mode") {
ContentView()
.preferredColorScheme(.light)
}
#Preview("Dark Mode") {
ContentView()
.preferredColorScheme(.dark)
}
Bitta faylda bir nechta #Preview bloklariga ega bo'lishingiz mumkin. Ularning har biri canvas panelida o'zining alohida preview'si sifatida render qilinadi. Bu yorug' va qorong'u rejimni bir vaqtda tekshirish yoki tartibingiz turli qurilma o'lchamlarida qanday ko'rinishini ko'rish uchun juda qulaydir.
// Hech qanday kod o'zgartirish shart emas β shunchaki Xcode-dagi Run (βΆ) tugmasini bosing
// yoki klaviatura yorlig'idan foydalaning: Command + R
// Xcode ilovani quradi va tanlangan simulator qurilmasida ishga tushiradi
Qaysi simulator iPhone yoki iPad-da ishga tushirishni tanlash uchun Xcode tepasidagi qurilma selektori dropdown menyusidan foydalaning. Simulator canvas preview'ga qaraganda sekinroq ishga tushadi, ammo u sizning to'liq ilovangizni β navigatsiya, holat o'zgarishlari va animatsiyalari bilan birga ishga tushiradi. Undan shunchaki statik tartiblarni emas, balki haqiqiy o'zaro tasirlarni sinash uchun foydalaning.
// Faqat ContentView-ni emas, istalgan ko'rinishni preview qilishingiz mumkin
struct ProfileCard: View {
var body: some View {
Text("Profil tarkibi shu yerda")
}
}
// Ushbu maxsus komponentni to'g'ridan-to'g'ri preview qilish
#Preview {
ProfileCard()
}
Har bir ko'rinish (view) fayli o'zining alohida #Preview blokiga ega bo'lishi mumkin. Bu SwiftUI-ning eng yaxshi ishlab chiqish xususiyatlaridan biridir β siz butun ilovani qurmasdan va ishga tushirmasdan turib, kichik komponent ustida ishlashingiz mumkin. Tezkor teskari aloqa tezroq o'rganishni anglatadi.
π‘ Odatni erta shakllantiring:
Kod yozish davomida canvas'ni doimo ochiq qoldirish odatini shakllantiring. Lahzali vizual teskari aloqa zanjiri β modifikatorni yozish va darhol natijani ko'rish β SwiftUI-ning eng katta afzalliklaridan biridir. Canvas'ni yopib, har safar simulator'ni ishga tushirish sizni sezilarli darajada sekinlashtiradi.
Preview ishlamay qolsa: Canvasda qizil xato ekrani odatda kodingizda kompilyatsiya xatosi borligini anglatadi. Xato xabarini tekshiring β u ko'pincha to'g'ridan muammoga ishora qiladi. Preview yangilanmayapti yoki qotiΠ± qolgan bo'lsa, Option + Command + P bosib majburan qayta yuklab ko'ring. Hali ham ishlamasa β faylni yopib qayta oching.
Tezkor ma'lumotnoma
| Amal | Qanday bajariladi |
|---|---|
| Canvas panelini ochish | Editor > Canvas yoki Option + Command + Return |
| To'xtatilgan preview'ni yangilash | Resume tugmasini bosish yoki Option + Command + P |
| Simulator-da ishga tushirish | βΆ tugmasini bosish yoki Command + R |
| Qorong'u rejimda preview qilish | #Preview { } ichidagi ko'rinishga .preferredColorScheme(.dark) qo'llash |
| Maxsus komponentni preview qilish | Istalgan SwiftUI faylining pastki qismiga #Preview { O'zKo'rinishingiz() } qo'shish |
| Simulator qurilmasini almashtirish | Xcode oynasining tepasidagi qurilma tanlash dropdown menyusidan foydalanish |
Sun'iy intellektdan chuqurroq o'rganish uchun foydalanish
1. Tushunchalarni chuqurlashtirish (ai'dan repetitor sifatida foydalaning):
- "Xcode-da SwiftUI canvas preview ishdan chiqishi yoki yangilanmasligining eng keng tarqalgan sabablari nima? Menga eng ko'p uchraydiganidan kam uchraydiganigacha bo'lgan tartiblangan ro'yxatni bering va har biri uchun tashxis qo'yish hamda tuzatish yo'lini tushuntiring."
- "Qachon canvas preview'dan va qachon simulator'dan foydalanishim kerak? Preview'da sinab ko'rib bo'lmaydigan, faqat simulator'da sinash mumkin bo'lgan aniq narsalar bormi? Har biriga aniq misollar keltiring."
2. Amaliy ko'rinish yaratish (xcode-da sinab ko'rish uchun):
- "Menga ostida uchta #Preview bloki bo'lgan SwiftUI Viewni yozib bering: biri yorug' rejimda, biri qorong'u rejimda va yana biri .dynamicTypeSize modifikatori yordamida kattalashtirilgan matn o'lchamida bo'lsin. Har bir #Preview tepasida u nimani sinovdan o'tkazayotganini va nima uchun ushbu uchala holatni tekshirish muhimligini yangi boshlovchi uchun tushunarli qilib yozing."
π― Topshiriq: uchta konfiguratsiyada preview qilish
Avvalgi darsda qurgan istalgan ko'rinishingizni oling va uning ostiga uchta #Preview blokini qo'shing: biri default (standart) holatda, biri .preferredColorScheme(.dark) bilan va yana biri boshqa qurilma o'lchamida. Uchalala preview'ni ham oching va tartibingiz barchasida to'g'ri ko'rinayotganini tekshiring. Agar qorong'u rejim biror narsani buzsa, nima uchun va qayeri buzilganini qayd eting.
π‘ Maslahat:
Siz har bir preview'ga nom berish uchun satr uzatishingiz mumkin:#Preview("Dark Mode") { ... }β bu bir nechta preview ochiq bo'lganda ularni canvas panelida osongina aniqlash imkonini beradi.