2012-04-13 2 views
1

Ich frage mich, warum es zwei Arten (Grenzen/Rahmen) für die Beschreibung einer Ansicht gibt. Da das Ändern der Größe von bounds.size. * Auch die Größe von frame.size. * Ändert, und umgekehrt, bedeutet dies, dass der einzige Unterschied zwischen Rahmen und Grenzen der Ursprung ist. Warum brauchen wir also zwei unterschiedliche Typen zum Beschreiben der Ansichtsgeometrie? und was übrigens bounds.origin bedeutet genau?Warum zwei Typen (Grenzen/Rahmen) verwenden, um eine Ansicht statt einer zu beschreiben?

+0

möglich Duplikat [Warum gibt es einen Rahmen Rechteck und ein Rechteck Grenzen in einem UIView?] (Http://stackoverflow.com/questions/749558/why-is-there-an-frame-rectangle-and-an-bounds-rectangle-in-an-uiview) – jlehr

Antwort

7

von CocoaDev wird:

  • Die Rahmen wird im Koordinatenraum einer Super Ansicht ausgedrückt.
  • Die Grenzen werden in einem eigenen Koordinatenraum der Ansicht ausgedrückt.

Visuelle Erklärung (von Apple Developer Reference):

enter image description here

Referenz:http://developer.apple.com/documentation/Cocoa/Conceptual/DrawViews/Concepts/ViewHierarchy.html

+0

danke, aber Ich kenne den Unterschied zwischen Frame/Grenzen (die Frage wurde aktualisiert, sorry), aber ich frage mich nur, warum wir zwei Arten zum Beschreiben von Ansichten benötigen, da die Größe in beiden Frame/Grenzen gleich sind. – Pwn

+1

@ mf25 Nun ... lasst es uns so betrachten: Wenn uns ALL die Größe anging, dann hätte Apple wohl "Grenzen" und "Rahmen" abgeschrieben und einfach eine "Breite" oder "Höhe" -Eigenschaft hinterlassen. Der Grund für die Existenz von "Grenzen" und "Rahmen" ist, dass die von ihnen zurückgegebene "NSRect" -Struktur (außer den Attributen "size.width" und "size.height") die Anfangskoordinaten (X, Y) enthält. Und in dieser Hinsicht, wie oben gezeigt, unterscheiden sie sich sicher ... :-) –

+2

Die Grenzen können größer sein und haben einen anderen Ursprung als der Rahmen; So funktionieren beispielsweise Scroll-Ansichten. Der Rahmen der Bildlaufansicht bleibt fixiert, während der Benutzer die Grenzen verschiebt. – jlehr

Verwandte Themen