2 Stimmen

verschieben einer uipickerview

Ich habe dieses Problem: wenn ich einen Uidatepicker verwende, geht alles gut: Ich habe diesen Code:

datePickerView.frame = CGRectMake(0, 264, 320, 216);
datePickerView.bounds = CGRectMake(0, -108, 320, 216);

und die datepicker ist halb auf dem Boden (wie ich will (nur für Test))

aber wenn ich eine uipickerview verwenden, und ich den gleichen Code verwenden:

genderPickerView.frame = CGRectMake(0, 264, 320, 216);
genderPickerView.bounds = CGRectMake(0, -108, 320, 216);

aber die Pickerview ist unten, nicht halb unten wie der Datepicker... Wo liegt das Problem? Vielen Dank im Voraus!

1voto

Nick Hingston Punkte 8496

Es liegt daran, dass Sie die Zeichnungsgrenzen der Ansicht geändert haben. Ich vermute, die Antwort auf die Frage, warum es zwischen den Picker-Ansichten unterschiedlich ist, liegt an der tatsächlichen Implementierung der einzelnen Steuerelemente - eine muss am Ursprung der Grenzen zeichnen, während die andere den Ursprung des Rahmens.

Durch das Setzen des y-Ursprungs der Begrenzungen auf -108 liegt der Ursprung des zeichenbaren Bereichs der Ansicht jetzt 108 Pixel über der tatsächlichen Ansichtsposition. im Allgemeinen möchten Sie den Ursprung nie auf die Begrenzungen setzen, besonders wenn Sie das Steuerelement nicht besitzen. Verwenden Sie einfach die Rahmenposition: 0,156, 320, 216 und sie sollten sich beide gleich verhalten.

Für eine gute Erklärung, wann Sie die Eigenschaften Rahmen, Grenzen oder Ansicht zentrieren verwenden sollten, siehe UIView's frame, bounds, center, origin, when to use what?

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