¿Cómo crear correctamente un button UIB que networkingimensiona la longitud del text en Xcode 4?

En Xcode 4, debe ser capaz de diseñar interfaces de interfaz de usuario que cambien el tamaño en function de su contenido. Aún así parece que faltan algunas piezas sobre cómo get esto.

Tengo un button que está configurado en el file XIB para cambiar el tamaño a la derecha y tiene mucho espacio para hacer eso.

El problema es que no se ajusta para cambiar el tamaño del button cuando se actualiza la label.

Esto se puede arreglar agregando un [button sizeToFit]; después de cambiar la label.

Todavía estoy buscando una solución que funcione sin agregar este paso manual al código.

botón-ios-43

button-ios-50b7

Menciono que hay suficiente espacio para expandir el button aún más, aún con el sizeToFit Costuras a para agrandar el button, pero aún así no es suficiente para ajustarse al text completo.

¿Qué me estoy perdiendo?

En XCode 4.5 y superior, esto ahora se puede hacer usando ' Diseño automático / Restricciones '.

Las principales ventajas son que:

  1. ¡No necesitas progtwigr frameworks en absoluto!
  2. Si se hace correctamente, no necesita preocuparse por restablecer frameworks para cambios de orientación.
  3. Además, los cambios del dispositivo no necesitan molestarlo (leer, no es necesario codificar por separado para diferentes tamaños de pantalla).

Algunas desventajas:

  1. No es compatible con versiones anteriores: solo funciona para iOS 6 y versiones posteriores.
  2. Necesita familiarizarse (pero ahorrará time más adelante).

Lo más interesante es que nos concentramos en declarar una intención como:

  • Quiero que estos dos botones tengan el mismo ancho; o
  • Necesito que esta vista esté cinput verticalmente y se extienda a un máximo de 10 puntos desde el borde de la supervisión; o incluso,
  • ¡Quiero que este button / label cambie de tamaño de acuerdo con la label que está mostrando!

Aquí hay un tutorial simple para get información sobre el layout automático: http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2

Para una visión más detallada de las cosas, vaya a: http://www.techotopia.com/index.php/An_Introduction_to_Auto_Layout_in_iOS_6

Lleva algo de time al principio, pero parece que valdrá la pena el esfuerzo.

¡Aclamaciones!

[button sizeToFit] no funcionó para mí, pero encontré una manera de usar IB solo (xcode 4.5):

  1. Haga clic en el UIButton
  2. en el inspector de Tamaño arrastre el content hugging a 1 (horizontal y vertical)
  3. arrastre la compression resistance a 999 (para ambos)
  4. bajo las restricciones de UIB, click Width y cambie la priority a 250
  5. Haz lo mismo para Height
  6. Puede usar la UIButton del UIButton para controlar el relleno para izquierda / derecha / arriba / abajo

sizeToFit llamar a sizeToFit en el button después de configurar su título para que cambie el tamaño para que se ajuste al título dado.

Puede eliminar el paso manual UIButton el setTitle:forControlState: UIButton , anulando el setTitle:forControlState: e implementando la llamada a sizeToFit allí. No olvide llamar a la súper implementación, de lo contrario su título no se configurará y ocurrirán cosas malas.