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.

¿Fue útil?

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.

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