2012-09-12 29 views

Respuesta

19

puede configurar el centro del botón para colocarlo en consecuencia

yourButton.center = CGPointMake(0.0, 0.0);// for topleft 

yourButton.center = CGPointMake(160.0, 240.0);// for center 

yourButton.center = CGPointMake(320.0, 480.0);// for bottomright 

espero que esto ayude

+3

Sin embargo, esto no compensa el tamaño del botón. Por ejemplo, en la primera línea, su botón estará parcialmente fuera de la vista. – woz

+2

en realidad el hombre quiere alinear el botón (superior, inferior o central) y no establecer el marco, por lo tanto, di mi respuesta –

+0

¿Son 320 y 480 también métricas válidas para el iPhone 5 o 5S? –

3

Debe establecer su marco.

Algo como

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(320, 120, 35, 10)]; 

o

button.frame = CGRectMake(320, 120, 35, 10); 

Tenga en cuenta que el primer par de valores son, respectivamente, el ancho y la altura (la posición en X e Y) de la vista y la segunda un par de valores son el ancho y el alto del botón.

Por lo tanto, si quieres un botón en la parte superior, debe escribir

button.frame = CGRectMake(0, 0, 35, 10); 

Medio

button.frame = CGRectMake(160, 240, 35, 10); 

inferior

button.frame = CGRectMake(320, 480, 35, 10); 
+0

¡Oh, muchas gracias! ¡Ustedes molan! – iHackerMe

+0

Tendré que esperar 8 minutos para aceptar esta respuesta: P StackOverFlow no me deja aceptar respuestas tan rápido :) Sin embargo, seguramente lo aceptaré después de la larga espera de 8 minutos :) – iHackerMe

+0

Sin problemas, lo importante es que tienes cómo ¡para hacerlo! – Phillip

5

La única manera de fijar la posición de una subvista es manualmente Puede establecer el marco, de esta manera, por ejemplo:

enter image description here

O cambiar el origen, de esta manera, por ejemplo:

view.frame.origin.x = INT_VALUE;

La única manera de obtener algún tipo de alineación es hacer matemáticas con self.view.frame. Si desea alinear un objeto horizontalmente con el centro de la pantalla, utilice la siguiente:

view.frame.origin.x = self.view.frame.size.width/2

Si desea alinear algo a la parte superior con un margen de 44 píxeles, utilice esto:

view.frame.origin.y = self.view.frame.origin.y = (view.frame.size.height/2) + 44;

Etc.

+0

Me gusta lo absoluto con lo que respondió. "La única manera" xD –

53

Usted tiene que fijar UIButton enmarcar su auto.

horizontalmente alineación

float X_Co = (self.view.frame.size.width - yourButtonWidth)/2; 
[button setFrame:CGRectMake(X_Co, yourYposition, yourButtonWidth, yourButtonheight)]; 

alinear verticalmente

float Y_Co = (self.view.frame.size.height - yourButtonheight)/2; 
[button setFrame:CGRectMake(yourXposition, Y_Co, yourButtonWidth, yourButtonheight)]; 

ARRIBA A LA IZQUIERDA

[button setFrame:CGRectMake(0.0, 0.0, yourButtonWidth, yourButtonheight)]; 

SUPERIOR DERECHA

float X_Co = self.view.frame.size.width - yourButtonWidth; 
[button setFrame:CGRectMake(X_Co, 0.0, yourButtonWidth, yourButtonheight)]; 

inferior izquierda

float Y_Co = self.view.frame.size.height - yourButtonheight; 
[button setFrame:CGRectMake(0.0, Y_Co, yourButtonWidth, yourButtonheight)]; 

inferior derecha

float X_Co = self.view.frame.size.width - yourButtonWidth; 
float Y_Co = self.view.frame.size.height - yourButtonheight; 
[button setFrame:CGRectMake(X_Co, Y_Co, yourButtonWidth, yourButtonheight)]; 

Centro de self.view

button.center = self.view.center; 
OR 
float X_Co = (self.view.frame.size.width - yourButtonWidth)/2; 
float Y_Co = (self.view.frame.size.height - yourButtonheight)/2; 
[button setFrame:CGRectMake(X_Co, Y_Co, yourButtonWidth, yourButtonheight)]; 
+4

Si bien esta respuesta es correcta, puede encontrar problemas gráficos al centrar un marco cuando es alto o el ancho es un valor desigual como 15 píxeles. El marco puede comenzar a medio píxel, borrando la vista. Para solucionar esto, una solución podría ser corregir el cuadro utilizando 'button.frame = CGRectIntegral (button.frame);' después de establecer el centro. –

+0

Pero X_Co y Y_Co son valores flotantes. – TheTiger

+0

¡Gracias a todos por sus respuestas! ¡Ojalá pudiera aceptarlos a todos! Soy un novato y no sé qué números o valores tendría que poner para alinearlo en alguna parte. ¿Hay alguna guía que comprenda para comprender los valores de ancho de pantalla, etc.? – iHackerMe

Cuestiones relacionadas