Zentrieren Sie ein label in einem UIView
Was ist der beste Weg, um Mitte eine Beschriftung in ein UIView
? Wenn Sie etwas tun, wie
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(view.frame.origin.x / 2, view.frame.origin.y / 2, 50.0, 50.0)];
Dann bist du die Einstellung der Nullpunkt des Labels auf die Mitte der Ansicht. Die beste Wette wäre, um die Mitte der Ansicht zu, dass der Punkt über die center-Eigenschaft. Also versuchte ich mit dem folgenden code:
UIView *aView = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]] autorelease];
aView.backgroundColor = [UIColor darkGrayColor];
CGRect frame = aView.frame;
UILabel *aLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 125.0f, 30.0f)];
[aLabel setCenter:CGPointMake(frame.origin.x / 2, frame.origin.y / 2)];
Ergibt, dass eine Marke, die ziemlich viel außerhalb der Grenzen der Ansicht in der oberen linken Ecke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die wichtigste Sache, die Sie tun, falsch ist, unter die Hälfte der Herkunft Werten, eher als der Hälfte der Größen
Jedoch, Sie müssen nicht selbst berechnen, dass in diesem Fall - nur etwas wie die folgende:
(beachten Sie, Sie brauchen nicht zu erzwingen, das die Koordinaten schwimmt - in diesem Fall schreiben Sie als int-Werte scheint mehr lesbar).
Auch, es ist eine Frage des Stils - aber da hast du schon mithilfe von property-syntax (
aView.backgroundColor
) können Sie auch verwenden es für die center-Eigenschaft zu 🙂Position jedes Kind horizontal zentriert in einem übergeordneten Sie würde seine position berechnen wie so;
(Dies gilt auch für die Höhe).