Junior — Middle
Kun je een voorbeeld geven waarbij de rand van een element en de grenzen niet overeenkomen qua grootte?
sobes.tech AI
Antwoord van AI
In iOS beschrijft de frame van UIView de positie en grootte van het element ten opzichte van zijn superview, terwijl de bounds het interne coördinatensysteem van het element zelf beschrijven.
Een voorbeeld waarbij de frame en bounds niet overeenkomen qua grootte, is wanneer er een transformatie op een UIView wordt toegepast, zoals schalen of roteren. In dat geval wordt de frame berekend met inachtneming van de transformatie en kan deze verschillen van de bounds.
let view = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 100))
view.transform = CGAffineTransform(scaleX: 2, y: 2)
print(view.frame) // frame wordt vergroot door de schaal
print(view.bounds) // bounds blijven (0,0,100,100)
Hier blijft bounds hetzelfde, terwijl frame verandert om de nieuwe grootte en positie na de transformatie weer te geven.