Wie kann ich UIView
horizontal zentriert und 30px vom oberen Rand des View-Controllers mit CGRectMake
machen?
Sie können eine Ansicht nicht in einem Ansichtscontroller zentrieren, da ein Ansichtscontroller keine Ansicht ist und kein Koordinatensystem hat.
Sie können eine Ansicht relativ zu einer anderen Ansicht zentrieren. Vermutlich möchten Sie draggableView
relativ zur Sicht des View-Controllers zentrieren. Angenommen, self
ist der View-Controller und draggableView
ist eine direkte Unteransicht der View-Controller-Ansicht:
Obwohl Rob Mayoff korrekt ist, könnte es sich lohnen, den Frame in viewWillLayoutSubviews zu zentrieren, der bei der Gerätedrehung aufgerufen wird. Sie können auch die Eigenschaften center.x und center.y der Mitte verwenden, um auf der Achse auszurichten. Keine Notwendigkeit, in diesem Fall sich selbst zu nennen.
%Vor% Ich verwende die Bibliothek MMMaterialDesignSpinner und erstelle einen benutzerdefinierten Aktivitätsindikator in der Mitte der Ansicht. Es funktioniert korrekt, Sie können Ihren benutzerdefinierten Ansichtsnamen wie "DraggableView" ändern. Ich hoffe, es ist für dich nutzbar. Dieser Code wird der Funktion viewDidLoad
in swift 3 hinzugefügt.
Dies ist eine nette kleine Erweiterung zum Zentrieren einer Ansicht oder eines Objekts:
%Vor%Und dann benutze es so:
%Vor%activityindicater ist die Ansicht, die Sie in die Mitte einfügen möchten
self.activityindicater.center = self.baseView.center