2011-03-02 9 views
8

¿Alguien tiene una lista de la configuración de fuente predeterminada que Apple usa en UITableViewCells, UILabel, etc.? También la información de posicionamiento para la etiqueta de texto en la UITableViewCell tanto agrupada como simple sería fantástica.¿Cuál es la configuración de fuente predeterminada utilizada en los estilos de UITableViewCell?

+1

comprobar mi respuesta en cuestión similar: http://stackoverflow.com/questions/4775107/uitableviewcellstylesubtitle-font-size/4777507#4777507. – Vladimir

+0

para verificar el posicionamiento de la etiqueta solo crea un proyecto de muestra y verifica los marcos de las etiquetas de la celda. Probablemente dependerán de muchos factores (por ejemplo, el tamaño de la celda) y probablemente se modifiquen en el futuro, por lo que no debe confiar en esos valores de todos modos. – Vladimir

+0

@Vladimir Gracias por la respuesta. ¿Cuál es el código que usa para verificar marcos para UIViews? ¿Sabes si hay una llamada comparable que te diga el color y el tamaño de la fuente? – Aaronium112

Respuesta

12

¿Está familiarizado con el depurador? Lo sabe todo. Para acceder al diseño, intente lo siguiente en gdb.

que establezca el punto de interrupción en - (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath que se llama justo antes de que se muestre la célula

(nota: hay una imagen de fondo en mi celda)

(gdb) po cell 
<UITableViewCell: 0x59e9920; frame = (0 66; 320 44); text = '396 Studio'; autoresize = W; layer = <CALayer: 0x59e9a00>> 

(gdb) po [cell subviews] 
<__NSArrayM 0x4eaf730>(
<UIImageView: 0x59ea660; frame = (0 0; 320 100); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x59ea690>>, 
<UITableViewCellContentView: 0x59e9eb0; frame = (9 0; 302 44); layer = <CALayer: 0x59ea070>> 
) 

(gdb) po [[[cell subviews] objectAtIndex:1] subviews] 
<__NSArrayM 0x4eaf700>(
<UILabel: 0x59e9170; frame = (0 0; 0 0); text = '396 Studio'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x59e91e0>>, 
<UITableViewLabel: 0x59e65c0; frame = (0 0; 0 0); text = 'Houston'; clipsToBounds = YES; userInteractionEnabled = NO; layer = <CALayer: 0x59e6690>> 
) 


(gdb) po [0x59e9170 font] 
<UICFFont: 0x5e12610> font-family: "Helvetica"; font-weight: bold; font-style: normal; font-size: 0px 


(gdb) p (CGRect)[cell frame] 
$1 = { 
    origin = { 
    x = 0, 
    y = 66 
    }, 
    size = { 
    width = 320, 
    height = 44 
    } 
} 

po = impresión objeto p = impresión, pero debe convertir el valor al tipo que usted sabe que es

sin acceso a la propiedad cell.frame - use los métodos de objetivo-c [cell frame]

Además, aquí hay un artículo de 4 años, pero sigue siendo útil en las fuentes de iPhone: daring fireball.

+5

Enseñe a un hombre a pescar ... – Buzzy

+1

Esto fue útil hasta el punto de que el depurador informa que el tamaño de fuente es cero. ¿En qué punto se determina el tamaño de letra * real *? – Bill

+1

puede intentar subclasificar 'UITableViewCell', anulando un método de visualización importante para simplemente llamar a' super' e inspeccionar los valores, entonces – bshirley

7

He subclasificado una UITableViewCell para obtener estos valores. Aquí está mi código:

dlog(@"%@",self.detailTextLabel.font); 
    dlog(@"%@",self.detailTextLabel.bounds); 
    dlog(@"%f",self.detailTextLabel.frame.size.height); 
    dlog(@"%f",self.detailTextLabel.frame.size.width); 
    dlog(@"%f",self.detailTextLabel.frame.origin.x); 
    dlog(@"%f",self.detailTextLabel.frame.origin.y); 
    dlog(@"%@",self.detailTextLabel.textColor); 

de salida:

2012-06-06 15:01:08.384 myapp[1007:f803] <mytablecell.m:(48)> <UICFFont: 0x68c8b20> font-family: "Helvetica"; font-weight: normal; font-style: normal; font-size: 14px//remember the text will shrink before hiding some with the "..." but this is default 
    2012-06-06 15:01:08.387 myapp[1007:f803] <mytablecell.m:(49)> (null) 
    2012-06-06 15:01:08.389 myapp[1007:f803] <mytablecell.m:(50)> 18.000000 
    2012-06-06 15:01:08.391 myapp[1007:f803] <mytablecell.m:(51)> 280.000000//its 284 if there is no accessory view(such as the checkmark I had in there when this ran) 
    2012-06-06 15:01:08.393 myapp[1007:f803] <mytablecell.m:(52)> 10.000000 
    2012-06-06 15:01:08.396 myapp[1007:f803] <mytablecell.m:(53)> 24.000000 
    2012-06-06 15:01:08.398 myapp[1007:f803] <mytablecell.m:(54)> UIDeviceRGBColorSpace 0.5 0.5 0.5 1 
Cuestiones relacionadas