Sobes.tech
Junior — Middle

Tudsz példát mondani, amikor egy elem kerete és határai méretben nem egyeznek meg?

sobes.tech MI

Válasz az MI-től

iOS-en a UIView kerete (frame) leírja az elem helyzetét és méretét a szuperview-jéhez képest, míg a határok (bounds) az elem saját belső koordináta-rendszerét írják le.

Egy példa, amikor a keret és a határok méretben nem egyeznek, az akkor fordul elő, amikor a UIView-ra transzformációt alkalmazunk, például nagyítást vagy forgatást. Ebben az esetben a frame a transzformáció figyelembevételével lesz kiszámítva, és eltérhet a bounds-tól.

let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.transform = CGAffineTransform(scaleX: 2, y: 2)
print(view.frame)  // a keret a nagyításnak megfelelően növekszik
print(view.bounds) // a határok változatlanok (0,0,100,100)

Itt a bounds változatlan marad, míg a frame a transzformáció után az új méretet és pozíciót tükrözi.