2010-08-03 34 views
6

Por alguna razón, muchas de las fuentes no se mostrarán en Interface Builder cuando estoy diseñando mi aplicación para iPad. Lamentablemente, aún no se ha entregado mi iPad, por lo que no puedo decir si esto va a ser un problema a largo plazo, pero sin duda se mantiene hasta el simulador.Fuentes que no se muestran en Interface Builder

Las fuentes en cuestión se enumeran en varios sitios web como compatibles con el iPad, pero el SDK 4.0.1 todavía parece estar confundido.

Por ejemplo, la fuente de texto Hoefler asignada a una etiqueta dibujada directamente en la vista de iPad nueva muestra la fuente predeterminada. Si hago clic para editar el texto, se muestra con la fuente correcta. Lo he intentado en un par de Macs ahora

Este es un problema, ya que necesito para enviar a través de las aplicaciones maquetas a mi cliente que firme de las disposiciones perfectas de píxeles para su equipo back-end :(

Cualquier ideas?!

+0

¿por qué no puedo etiquetar este iphone-sdk? cada vez que lo hago simplemente lo ignora?!?! –

Respuesta

8

Para otros que puedan estar interesados: hay un error/problema conocido con IB en XCode 3.x con fuentes no estándar e Interface Builder. Las fuentes personalizadas generalmente deben establecerse programáticamente (a través de [UIFont fontWithName ...).

Para maquetas, debe utilizar una herramienta como PhotoShop, etc. en lugar de Interface Builder.

+0

Parece que todavía no está arreglado ... Estoy intentando utilizar Hoefler Text para mi diseño y es realmente doloroso. – CedricSoubrie

+7

Cuando escribí esa publicación XCode 4 no se publicó, pero aún tiene razón: todavía está ahí en 4, lamentablemente ... :( – lxt

+3

Todavía roto en Xcode 4.5 – Adam

3

usando fuentes personalizadas en Interface Builder una biblioteca reutilizable está disponible.

Utiliza un truco simple para hacer esto. Establezca la fuente (digamos calibri) a todos sus elementos de interfaz de usuario que nunca usará en su proyecto y FontReplacer hará la asignación entre fuente personalizada y calibri. Por lo tanto, no es necesario crear IBOutlets ni ningún otro gráfico.

Aquí hay un enlace a github desde donde puede descargar FontReplacer para usar en su proyecto. https://github.com/0xced/FontReplacer

+0

No es un gran solución si está tratando de alinear sus etiquetas, etc. al trabajo del diseñador de la interfaz de usuario exactamente :( – user441669

2

Resolvió esto escribiendo una categoría personalizada en UILabel. Esa categoría tiene una propiedad 'myFontName' que establecí en la etiqueta usando objc_setAssociatedObject, y obtengo del objeto usando objc_getAssociatedObject.

Luego escribí otro método en la categoría llamada 'updateWithMyFont' que establece la fuente en la etiqueta a través de la propiedad de texto atribuida de la etiqueta (toma el attributeText y copia los atributos, establece la fuente, crea una nueva cadena atribuida, configura el propiedad attributeText).

+0

¿Podría incluir aquí su código para que yo pueda entender mejor? – Suragch

Cuestiones relacionadas