3 Stimmen

Erstellen einer UIView in Interface Builder, die sich automatisch zentriert, wenn sie als Unteransicht hinzugefügt wird

Ich erstellte eine UIView xib in Interface Builder und versuchte alles, was ich konnte, um anzugeben, dass die UIView selbst zentrieren sollte, verankern sich in der Mitte, orientieren sich in zentralen Koordinaten, usw. usw.

Aber immer, wenn ich sie als Unteransicht im Code hinzufüge, muss ich auch ihren Rahmen programmatisch einrichten mit CGRectMake() sonst wird sie immer oben links von ihrer Muttergesellschaft eingefügt. Die Mathematik, um es neu zu gestalten ist sinnlos und hässlich, so dass ich vermute, ich bin einfach nicht drehen ein bisschen in der IB-Inspektor richtig.

Kann jemand bestätigen, dass dies möglich ist, und wenn ja, was muss ich in IB tun, um dies zu erreichen?

1voto

Warum setzen Sie nicht einfach .center der soeben hinzugefügten Unteransicht auf den Punkt, der durch Halbierung der Breite und Höhe der Oberansicht entsteht?

Entweder das oder definieren Sie das Rechteck, dass die Ansicht in mit IB geht (ich bin eine Container-Ansicht vorstellen) und einfach den Rahmen der Ansicht, die Sie hinzufügen, um containerView.bounds (Grenzen ist ein positionsunabhängiger Wert und so x, y wird 0 sein, während Größe gleich der Container-Größe wird.

0voto

Nick Bedford Punkte 4233

Zentrieren unter Beibehaltung der Größe ist in IB nicht möglich. Zentrieren unter Beibehaltung der Ränder in der Übersichtsansicht ist jedoch möglich.

Sie müssen die layoutSubviews-Meldung außer Kraft setzen oder einfach den von Ihnen geschriebenen Berechnungscode beibehalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X