2009-06-03 8 views
5

Quiero mostrar un total dentro de una barra de herramientas. Puse IB en UILabel en la parte superior de la barra de herramientas.UILabel dentro de una UIToolbar utilizando IB es invisible en la ejecución, ¿cómo se arregla?

Sin embargo, cuando ejecuto la aplicación, UILabel es totalmente invisible (pero puede establecer valores en el código).

Lo más extraño es que en otras formas, todo funciona bien. No veo por qué en una forma funciona pero no en otra ...

¿Alguna idea de cómo arreglar esto? ¿O por qué está sucediendo este comportamiento?

Respuesta

21

No utilice un UILabel.

Use un UIBarButtonItem. Luego configúralo a estilo: simple. Parece una etiqueta, pero en realidad es un botón sin bordes. Esta es la práctica general de mostrar texto en una barra.

También puede crear UIBarButtonItem con una vista personalizada en el código. Usted es simple "envolviendo" el UILabel en un UIBarButtonItem que le permite agregar lo que quiera a una barra de herramientas.


Para añadir en respuesta a comentar:

De cualquier manera, se hace el botón "inactivo" y que no responde a los toques. Aunque es un botón, no parece ser uno. Así es como Apple espera agregar vistas a una barra de herramientas/barra de navegación como apposed para "flotar cosas encima de él". No viola ninguna norma HIG, sino todo lo contrario, es una técnica de diseño recomendada.

Para detener el brillo: Cree el botón mediante programación, asegúrese de que esté desactivado, agréguelo a la barra, luego debe deshabilitarlo, pero no atenuarlo.

+0

Buena idea. Esta es probablemente una mejor respuesta que la mía :) – Dutchie432

+0

Hago eso antes, pero creo que eso viola las pautas de UI de Apple, porque puedo hacer clic en la etiqueta y comportarme como un botón, y no sé cómo hacerlo. simplemente ser informativo y no responder a las acciones del usuario. Pero si está bien, entonces es la mejor solución. – mamcx

+0

Habilita el botón y ya no es más un botón. Así es como está destinado a ser utilizado. –

0

En IB, ¿ha intentado seleccionar la etiqueta y usar la opción de menú "Traer a la fuente" (en Diseño)? Parece que estás tratando de hacer algo bastante estándar.

Cuando intenta establecer valores, ¿aparece la etiqueta como nula o en la dirección 0x0? Es posible que la etiqueta esté allí, pero no se puede establecer su texto porque su instancia es defectuosa (no está conectada correctamente en IB a la IBOutlet) .... Simplemente ponga un punto de interrupción en la línea donde está tratando de establecer el valor (s)) para la etiqueta, y verifique que la variable de etiqueta no sea nula (o 0x0). Si no es así, intente configurar el texto y verifique en la siguiente línea que su texto se configuró correctamente.

0

arrastre un UIButton en su UIToolBar. A continuación, desmarque User Interaction Enables para este botón.

Personalice su UIButton para que se vea como UILabel. Espero que esto te ayudará.

UILabel into a UIToolbar

Cuestiones relacionadas