Published on

SwiftUIda rang, UIColor, rang harflari va HEX ranglar

Authors

Bu videoda ranglar haqida gaplashamiz. Agar SwiftUI bilan tanish bo‘lsangiz, ekranga oddiy ranglar qo‘shishni bilasiz – SwiftUIda standart ranglar mavjud: Color.red, Color.blue, Color.orange, Color.green va hokazo.

Lekin bu faqat oddiy ranglar – real ilovalarda ular har doim ham chiroyli ko‘rinmaydi. Men sizlarga dunyodagi istalgan rangni SwiftUI kodiga qanday moslashtirishni ko‘rsataman:

  • Oddiy ranglar (red, green, blue).
  • Ilg‘or: UIKit ranglarini SwiftUIda ishlatish – masalan, iPhone tizim fon ranglari.
  • Color Literal – Xcode’da rang palitrasini ochish va dunyodagi har qanday rangga kirish, shu jumladan hex kodlar bilan.
  • Video oxirida ranglarni moslashuvchan qilish – yorug‘lik va qorong‘u rejimlar o‘rtasida o‘zgarishini ko‘rsataman.

Yangi fayl yaratish

Bir necha video oldin yaratgan Xcode loyihamizga qaytdim. Bu videodagi kod uchun yangi fayl yaratyapman:

  1. Project Navigator’da (chapda) o‘ng tugmani bosing.
  2. “New File” > “SwiftUI View”ni tanlang.
  3. Fayl nomini “ColorsBootcamp” deb qo‘ying.

Fayl ochilgach, o‘ngdagi preview’da “Resume” tugmasini bosing – preview ulanadi.


Shakl va oddiy ranglar

Bu video ranglar haqida bo‘lgani uchun ekranga shakl qo‘shib, uning rangini o‘zgartiramiz:

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color.red)
  • RoundedRectangle – yumaloq burchakli to‘rtburchak.
  • .fill(Color.red) – SwiftUIning standart qizil rangi bilan to‘ldirish.

SwiftUIda tayyor ranglar:

  • Color.purple, Color.blue, Color.green va boshqalar – hex kodlarsiz ishlatiladi.

  • Preview’da rangni o‘zgartirib sinash oson:

    .fill(Color.purple)
    

Primary va Secondary

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color.primary)
  • Color.primary – yorug‘lik rejimida qora, qorong‘u rejimida oq.
  • Preview’ni “Dark” rejimga o‘zgartirsak (Inspector > Scheme > Dark):
    • Color.primary oq bo‘ladi – matn uchun juda foydali, chunki har ikki rejimda o‘qiladi.

Color literal

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color(.sRGB, red: 0.0, green: 0.5, blue: 1.0, opacity: 1.0))
  • Color literal – rang palitrasini ochadi:
    1. Color deb yozing, “color literal”ni tanlang.
    2. Rang belgisini ikki marta bosing – palitra ochiladi.
  • Palitra imkoniyatlari:
    • Color Wheel – istalgan rang.
    • RGB Sliders – hex kod kiritish (masalan, #00FF00).
    • Grayscale, Crayons, Web Safe Colors, Spectrum.
  • Masalan, “Ocean” rangini tanlasak, preview’da ko‘rinadi.

UIKit ranglari

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color(UIColor.secondarySystemBackground))
  • UIColor – UIKit ranglari SwiftUIda ishlatilishi mumkin.
  • secondarySystemBackground – iPhone foniga mos keladigan och kulrang:
    • Yorug‘lik rejimida och kulrang, qorong‘u rejimida quyuqroq kulrang – avtomatik moslashadi.

Boshqa UIKit ranglari:

  • systemBackground, tertiarySystemBackground, systemFill – tizim fonlari va to‘ldirish uchun.

Rang aktivlari (Assets)

Assets.xcassets papkasida maxsus ranglar saqlanadi:

  1. Chapdagi “Assets.xcassets”ni oching.
  2. Pastdagi “+” > “Color Set” qo‘shing.
  3. Nomini “customColor” qilib o‘zgartiring.
  4. Inspector’da:
    • “Any” (yorug‘lik rejimi) uchun ko‘k rang tanlang.
    • “Dark” uchun qizil rang (masalan, “Strawberry”).

Koddagi foydalanish:

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color("customColor"))
  • "customColor" – Assets’dagi rang nomi.
  • Preview’da yorug‘lik rejimida ko‘k, qorong‘u rejimida qizil ko‘rinadi.

Soyalar (Shadows)

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color("customColor"))
.shadow(radius: 10)
  • .shadow(radius:) – shaklga soya qo‘shadi (radius – soya kengligi).

Maxsus soya

RoundedRectangle(cornerRadius: 25)
.frame(width: 300, height: 200)
.fill(Color("customColor"))
.shadow(color: Color("customColor").opacity(0.3), radius: 10, x: 20, y: 20)
  • color: – soya rangi (masalan, customColor bilan moslashtiramiz).
  • .opacity(0.3) – shaffoflik (0.3 – 30%).
  • x: 20, y: 20 – soya joylashuvi (o‘ngga va pastga 20 piksel).

Xulosa

Bu videoda SwiftUIda ranglarni qanday qo‘shishni o‘rgandik:

  • Oddiy ranglar (Color.red, Color.primary).
  • Color Literal bilan har qanday rang.
  • UIKit’dan tizim ranglari.
  • Assets’da maxsus ranglar – yorug‘lik va qorong‘u rejimlar uchun.
  • Shakllarga soya qo‘shish.

Endi siz ilovangizga istalgan rangni qo‘sha olasiz!

Buy mea coffee