2010-11-18 2 views
1

Ich habe einige Grafiken, die bereits skaliert und für mein Projekt korrekt geschnitten sind. Ich entschied mich, die Benutzeroberfläche in IB zu bauen und alles richtig positioniert, unter Größe und Position habe ich ein "Frame" (anstelle des Layouts) gelassen.UIViews, die in Interface Builder erstellt wurden, ändert ihre Position während der Ausführung (UIViewContentMode)

Zur Laufzeit werden meine Grafiken entsprechend dem eingestellten UIViewContentMode verschoben und gestreckt. Wenn ich das komplett im Code mache und einen Frame und keinen UIViewContentMode setze, würde Cocoa dies respektieren und die Grafiken in Ruhe lassen. Aber IB macht die Dinge ein bisschen anders.

Ich denke mein Problem ist, dass ich nicht genau verstehe, was die verschiedenen UIViewContentMode tut und ich kann nicht die richtige finden, um die Manipulation der Grafiken zur Laufzeit "auszuschalten".

Kann jemand meint eine wenig Hilfe auf diese geben :)

Dank in Bezug.

Antwort

0

Wenn Sie den Wert nicht festlegen, lautet der Standardwert UIViewContentModeScaleToFill. Wenn es in Code tut und dann setNeedsDisplay aufruft, tut es "zu füllen"? Ich denke, es hängt davon ab, wie Sie es "in Code" machen, wenn der Content-Modus erzwungen wird - ich nehme an, dass IB einige zusätzliche Sachen in der Init macht, um den Content-Modus anzuwenden, den Sie nicht im Code machen.

Wie auch immer, wenn Sie nicht möchten, dass es "skaliert", können Sie alle UIViewContentMode-Operationen auswählen, die nicht das Wort "Scale" im Namen enthalten. Überprüfen Sie die UIViewContentMode enum für Details zu was jeder tut.

+0

Die "Überraschung" für mich hier war, dass natürlich die SuperViews ContentMode-Werte auf die Unteransicht wirkt. Also habe ich ständig die subviews contentMode Werte eingestellt und nichts geändert, bis ich die superViews geändert habe. Danke Eric – RickiG

Verwandte Themen