Simplemente estoy instanciando ay UITextField
notando que el texto no se centra verticalmente. En cambio, está al ras con la parte superior de mi botón, lo que me parece extraño, ya que esperaría que el valor predeterminado lo centre verticalmente. ¿Cómo puedo centrarlo verticalmente o hay alguna configuración predeterminada que me falta?
ios
uitextfield
alignment
Joey
fuente
fuente
textField
es el nombre de suUITextField
instancia: la suya puede ser diferente. Entonces tendrá algo asíUITextField *textField = [[UITextField alloc] init];
. Si usa un nombre de variable diferente (cualquier cosa que no seatextField
después de*
), debe hacerlo en suyourDifferentVariableNameHere.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter
lugar.textField.contentVerticalAlignment = .center
Potencialmente, esto tiene varios factores complicados, algunos mencionados en respuestas anteriores:
Lo que está intentando alinear es importante porque el punto de la fuente debe estar centrado verticalmente debido a la altura de la línea, ascendentes, descendentes, etc. (fuente: ilovetypography.com ) (Imagen gracias a http://ilovetypography.com/2009 / 01/14 / discreto-vertical-métrica / )
Cuando se trata solo de números, por ejemplo, la alineación central estándar no se verá del todo bien. Compare la diferencia en los dos siguientes, que usan la misma alineación (en el código a continuación), uno de los cuales parece correcto y el otro que se ve ligeramente desviado:
No del todo bien con una mezcla de letras:
pero se ve bien si solo son números
Entonces, desafortunadamente, puede necesitar un poco de prueba y error y un ajuste manual para que se vea visualmente correcto.
Puse el siguiente código en una subclase de UITextField. Llama a métodos de superclase ya que esto tiene en cuenta el botón de borrado que está presente.
fuente
placeholderRectForBounds
extiende demasiado a la derecha. Tengo una vista correcta y entra en ella a diferencia de los otros límites. Acabo de implementarlotextRectForBounds
y lo llamé desde los otros 2 funcs :)En el guión gráfico: Bajo control -> cambie la alineación vertical y horizontal, según sus necesidades.
fuente
Esto funciona bien para el texto de textField. Pero si desea utilizar texto de marcador de posición (un texto que aparecerá mientras el campo de texto está en blanco), en iOS 7 encontrará problemas.
Lo resolví anulando la clase TextField y
método.
Me gusta esto:
Funciona tanto para iOS7 como para versiones anteriores.
fuente