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.