Sobes.tech
Junior — Middle

Czy możesz podać przykład, gdy ramka elementu i jego granice nie pokrywają się rozmiarem?

sobes.tech AI

Odpowiedź od AI

W iOS, ramka (frame) UIView opisuje pozycję i rozmiar elementu względem jego superview, podczas gdy granice (bounds) opisują wewnętrzny układ współrzędnych samego elementu.

Przykład, gdy ramka i granice nie pokrywają się rozmiarem, to gdy na UIView zastosowana jest transformacja, np. skalowanie lub obrót. W takim przypadku frame będzie obliczany z uwzględnieniem transformacji i może różnić się od bounds.

let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.transform = CGAffineTransform(scaleX: 2, y: 2)
print(view.frame)  // ramka powiększy się z uwzględnieniem skali
print(view.bounds) // granice pozostaną (0,0,100,100)

Tutaj bounds pozostaje bez zmian, a frame zmienia się, odzwierciedlając nowy rozmiar i pozycję po transformacji.