Dibuje subrayado / tachado de texto (MULTILINE CADENA)?
-
27-09-2019 - |
Pregunta
tengo que dibujar texto subrayado-multilínea con todo tipo de alineación del texto. He buscado en los foros y consiguió algunos resultados como:
http: //davidjhinson.wordpress. com / 2009/11/26 / subrayado de texto-a-la-iphone /
http://forums.macrumors.com/showthread.php?t=561572
Pero todo el texto sorteo de solamente una sola línea. Mientras que he texto de varias líneas. La situación incluso empeorar cuando se centra la alineación del texto. Busqué y encontré que en iphone-sdk-3.2 hay algunos atributos de núcleo-texto para subrayar un texto pero ni idea de cómo utilizar eso. Además si uso estos mi problema no se resolvería por completo.
Como tengo que dibujar texto tachado también.
Alguien tiene idea acerca de esta ayuda por favor.
Solución
¿Qué hay de esto. Este buen funciona para mí lo que todos pensamos, si esto necesita un poco de optimización?
CGContextSetFillColorWithColor(c, [[UIColor blackColor] CGColor]); //THE TEXT COLOR OF THE STRING TO BE DRAWN.
UIFont *fontName = [UIFont fontWithStyle:@"Arial-BoldMT" andFontSize:13];
if(FontOverLayUnderLine || FontOverLayStrikeThrough){
NSArray *stringsArray = [textString componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
CGContextSetStrokeColorWithColor(c, [appDel.textDisplayStyle.fillColor CGColor]);
CGContextSetLineWidth(c, 1.0);
CGSize stringSize;
NSString *stringToDraw;
for (int i = 0 ; i < [stringsArray count]; i++) {
stringToDraw = [stringsArray objectAtIndex:i];
if(![[stringToDraw stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] isEqualToString:@""]){
stringSize = [stringToDraw sizeWithFont:fontName forWidth:rect.size.width lineBreakMode:UILineBreakModeCharacterWrap];
float x = rect.origin.x + (rect.size.width-stringSize.width)/2 + 7;
float y = 4 + stringSize.height*i;
[stringToDraw drawAtPoint:CGPointMake(x, y) forWidth:stringSize.width withFont:fontName lineBreakMode:UILineBreakModeCharacterWrap];
if(FontOverLayUnderLine)
y += (1.05) * stringSize.height*i +1;
else
y += (stringSize.height/2)+1;
CGContextMoveToPoint(c, x, y);
CGContextAddLineToPoint(c, x+stringSize.width, y);
CGContextStrokePath(c);
}
}
}
Esperanza este buen funciona para todos.
Gracias,
Madhup
Otros consejos
Uso Core texto.
Me buscó y encontró que en iphone-sdk-3.2 hay algunos atributos de núcleo-texto para subrayar un texto pero ni idea de cómo utilizar eso.
Eso es lo que la documentación es para.