- Published on
Overlay va Background modifikatorlari
- Authors
- Name
- ShoxruxC
- @iOSdasturchi
.overlay() va .background() β View ustiga va orqasiga boshqa View qo'shish. ZStack dan farqi β asosiy View hajmi saqlanadi. Badge, dekoratsiya, murakkab fon uchun ideal.
overlay β ustiga qo'shish
// βββββββββββββββββββββββββββββββββββββββ
// ODDIY OVERLAY
// βββββββββββββββββββββββββββββββββββββββ
Image(systemName: "bell.fill")
.font(.title)
.overlay(alignment: .topTrailing) {
// Badge β o'ng yuqori burchakda
Text("3")
.font(.caption2.bold())
.foregroundStyle(.white)
.padding(5)
.background(.red)
.clipShape(Circle())
.offset(x: 10, y: -10)
}
// βββββββββββββββββββββββββββββββββββββββ
// MURAKKAB OVERLAY β progress bar
// βββββββββββββββββββββββββββββββββββββββ
struct YuklanishKartasi: View {
let foiz: Double // 0...1
var body: some View {
RoundedRectangle(cornerRadius: 16)
.fill(.blue.gradient)
.frame(height: 100)
.overlay(alignment: .bottom) {
// Progress bar β pastda
GeometryReader { geo in
RoundedRectangle(cornerRadius: 4)
.fill(.white.opacity(0.3))
.frame(width: geo.size.width * foiz, height: 6)
}
.frame(height: 6)
.padding(.horizontal, 12)
.padding(.bottom, 12)
}
.overlay {
// Matn β markazda
Text("\(Int(foiz * 100))%")
.font(.title.bold())
.foregroundStyle(.white)
}
}
}
background β orqasiga qo'shish
// βββββββββββββββββββββββββββββββββββββββ
// BACKGROUND β turli variantlar
// βββββββββββββββββββββββββββββββββββββββ
// Oddiy rang
Text("Salom")
.padding()
.background(.blue)
.foregroundStyle(.white)
.clipShape(RoundedRectangle(cornerRadius: 10))
// Gradient fon
Text("Gradient")
.padding()
.background(
LinearGradient(colors: [.purple, .pink],
startPoint: .leading, endPoint: .trailing)
)
.clipShape(Capsule())
// Murakkab background
Text("Murakkab")
.padding()
.background {
RoundedRectangle(cornerRadius: 12)
.fill(.ultraThinMaterial)
.shadow(color: .black.opacity(0.1), radius: 10, y: 5)
}
// Shape ichida background (iOS 15+)
Text("Shape")
.padding()
.background(.blue, in: RoundedRectangle(cornerRadius: 12))
overlay va background kombinatsiyasi
// βββββββββββββββββββββββββββββββββββββββ
// KARTA DIZAYNI β overlay + background
// βββββββββββββββββββββββββββββββββββββββ
struct MahsulotKartasi: View {
var body: some View {
VStack(alignment: .leading, spacing: 8) {
Text("iPhone 15 Pro")
.font(.headline)
Text("$999")
.font(.title2.bold())
.foregroundStyle(.blue)
}
.padding()
.frame(maxWidth: .infinity, alignment: .leading)
// Fon β gradient + soya
.background {
RoundedRectangle(cornerRadius: 16)
.fill(.background)
.shadow(color: .black.opacity(0.08), radius: 12, y: 4)
}
// Ustida β "Yangi" badge
.overlay(alignment: .topTrailing) {
Text("YANGI")
.font(.caption2.bold())
.foregroundStyle(.white)
.padding(.horizontal, 8)
.padding(.vertical, 4)
.background(.green, in: Capsule())
.padding(8)
}
// Ustida β chegara
.overlay {
RoundedRectangle(cornerRadius: 16)
.strokeBorder(.gray.opacity(0.2), lineWidth: 1)
}
}
}
π― Topshiriq
Profil kartasi yarating: rasm ustida gradient overlay (pastdan qorayib ketadigan), badge bilan online/offline holat, background da soya va material. Bir nechta overlay va background qavatini sinab ko'ring.