Pregunta

¿Cómo dibujar texto truncado con ATSUI ?? Tengo una aplicación que utiliza la API legado QuickDraw. que utiliza StringWidth, TruncString y funciones cordón. Podría reemplazar el StringWidth y cordón con ATSUMeasureTextImage y ATSUDrawText de ATSUI. Sin embargo no pude encontrar una manera para truncar una cadena para que quepa en un rect.

He utilizado Cuarzo con QuickDraw antes de elegir ATSUI. Cuarzo no proporciona ninguna función para estimar el tamaño (en píxeles) del texto dibujado.

CGContextSelectFont(cgContext,
    "Geneva", 12.0, kCGEncodingMacRoman);
CGContextSetTextMatrix(cgContext,
    CGAffineTransformMake(1.0,0.0, 0.0,
    -1.0, 0.0, 0.0));
CGContextShowTextAtPoint(cgContext,
    inPoint.h, inPoint.v + 12.00, (const
    char*)&(inString[1]), inString[0]);

¿Hay alguna función en ATSUI que hace truncamiento de cadena como TruncString ... ?? si no cómo puedo dibujar una cadena truncada a un rect.

Gracias, Abhinay.

¿Fue útil?

Solución

Se desea utilizar HIThemeGetTextDimensions para medir la cadena con una política de truncamiento. Se le dará el ancho y la altura del rectángulo y la línea base; se puede hacer una CGRect con la anchura y la altura y establecer su origen a donde desea que el texto.

Sorprendentemente, esta función todavía parece ser apoyados en 64 bits, aunque nunca ha sido documentada (nunca ha habido ninguna documentación de referencia en absoluto para HITheme). Búsquelo en las cabeceras para obtener más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top