2009-08-03 3 views
2

Ich habe mir die Art und Weise angesehen, wie resiznig in Cocoa Touch funktioniert und es aussieht, ohne Code zu schreiben. Eine UIView kann nicht auf die Größe der untergeordneten Elemente eingestellt werden. Es gibt viele Optionen, um untergeordnete Ansichten zu skalieren und neu zu positionieren, wenn ihre enthaltene Ansicht die Größe ändert, aber nichts, was umgekehrt funktioniert, soweit ich das beurteilen kann.UIKIt: Die Größe einer Ansicht ändern, um Subviews zu berücksichtigen

wollte ich prüfen, ob dies der Fall ist, bevor ich eine Last von Subklassifizieren tun sizeThatFits außer Kraft zu setzen:

Antwort

1

Die Antwort ist, dass es keine Eigenschaft gibt, die Sie in einer Ansicht festlegen können, um die Größe automatisch ändern zu müssen, wenn die Größe der untergeordneten Elemente geändert wird. Kein Zweifel, Sie könnten etwas programmieren, das es getan hat, und es gibt Layout-Frameworks von Drittanbietern sowohl für Cocoa als auch für CocoaTouch, die die vielen Unzulänglichkeiten überwinden. Aber es gibt nichts eingebaut.

1

Im ziemlich sicher, dass Sie die Methode sizeToFit verwenden können. Die Größe der UIView wird basierend auf den Ansichten der untergeordneten Elemente angepasst. Sie müssen jedoch sicherstellen, dass die untergeordneten Elemente ebenfalls ordnungsgemäß angepasst sind.

+0

Ich weiß, dass Sie Code schreiben können, um eine Ansicht mit sizeToFit zu bemessen, um die gewünschte Größe von untergeordneten Ansichten zu messen. Ich habe gefragt, ob es eine eingebaute Möglichkeit dafür gibt, d. H. Indem nur Eigenschaften (entweder im Interface Builder oder im Code) gesetzt werden. – U62

+0

sizeToFit passt die Größe einer Ansicht automatisch an. Wenn Sie das auf einer UIView aufrufen, wird die Größe an die Dimensionen der Kinder angepasst. Kein zusätzlicher Code erforderlich. Das einzige Problem ist, wenn Ihre Kinder richtig dimensioniert sind. – gburgoon

Verwandte Themen