2010-10-07 23 views
5

Mam UITextField i chcę wyśrodkować to pole w środku widoku. Jakieś pomysły?Umieszczanie UITextField na środku widoku

usernameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 200, 200, 28)]; 

Zamiast CGRectMake(some numbers) - Chcę, aby umieścić go w centrum widoku.

Odpowiedz

8

można bezpośrednio przypisać go w centrum żądanego widoku:

usernameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 200, 200, 28)]; 
usernameField.center = myView.center; 
2
userNameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 28)]; 
userNameField.center = CGPointMake(CGRectGetWidth(someView.bounds)/2.0f, CGRectGetHeight(someView.bounds)/2.0f); 

Gdzie someView jest przeglądem userNameField.

+0

To trochę zawiłe, ale to działa. Korzystanie z centrum jest znacznie klarowniejszym kodem. –

+1

Jak już powiedziałem, centrum nie będzie działać w ogólnym przypadku. –

1

Dlaczego nie użyć właściwości centrum widoku?

userNameField.center = parentViewField.center; 
+0

To zakłada parentView jest fullScreen. Środek znajduje się w ramce, a nie w ograniczonej przestrzeni. –

+0

Nie, nie ma. Centruje widok podrzędny w widoku nadrzędnym - o co pyta. –

+2

"Środek jest określany w układzie współrzędnych jego superview i jest mierzony w punktach." Jeśli masz 3 widoki głębokie i próbujesz wyśrodkować trzeci widok w drugim widoku. Twoja metoda wyśrodkuje je w pierwszej. –