Sobes.tech
Junior

Milyen sorrendben kerülnek hozzáadásra a halmozott nézetek (subviews) az addSubview metódus hívásakor?

sobes.tech MI

Válasz az MI-től

A nézetek fölé adódnak minden létező alnézetet ugyanabban a sorrendben, ahogyan a addSubview hívás megtörtént. Így a legutóbb hozzáadott nézet lesz a legfelsőbb a UIView alárendelt nézeteinek hierarchiájában.

Látványosan ez azt jelenti, hogy a legutóbb hozzáadott nézet elfedi az előzőket, ha azok keretei átfedésben vannak.

Példa nézetek hozzáadására:

// Szülő nézet létrehozása
let parentView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
parentView.backgroundColor = .lightGray

// Első nézet létrehozása
let firstView = UIView(frame: CGRect(x: 20, y: 20, width: 100, height: 100))
firstView.backgroundColor = .red

// Második nézet létrehozása
let secondView = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
secondView.backgroundColor = .blue

// Első nézet hozzáadása. Ez lesz az első a subviews között
parentView.addSubview(firstView)

// Második nézet hozzáadása. Ez lesz a második a subviews között és fölé kerül az elsőnek
parentView.addSubview(secondView)

// Mostantól a parentView.subviews tartalmazza [firstView, secondView]

A subviews tömb sorrendje tükrözi a Z-tengely menti rétegezési sorrendet. Az első elem lent, az utolsó fent helyezkedik el.