Frage

Ich habe mit allen Arten von Textausrichtung unterstrichenen-mehrzeiligen Text zu zeichnen. Ich habe in Foren gesucht und bekam einige Ergebnisse wie:

http: //davidjhinson.wordpress. com / 2009/11/26 / unterstrichen-text-on-the-iphone /

http://forums.macrumors.com/showthread.php?t=561572

Aber all Draw Text für nur einzelne Zeilen. während ich einen Text mit mehreren Leitungen. Die Situation noch schlimmer werden, wenn die Textausrichtung zentriert ist. Ich suchte und fand, dass in iphone-sdk-3.2 gibt es einige Kern-Textattribute einen Text für unterstreicht aber keine Ahnung, wie das verwenden. Außer, wenn ich diese mein Problem verwenden würde nicht vollständig gelöst werden.

Da ich auch durchgestrichener Text ziehen.

Wer hat Ahnung von diesem bitte helfen.

War es hilfreich?

Lösung

Was darüber. Dies funktioniert gut für mich, was Sie alle denken, wenn diese eine gewisse Optimierung braucht?

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);
                    }
                }

            }

Hope funktioniert dies gut für alle.

Danke,

Madhup

Andere Tipps

Mit Core-Text.

  

Ich suchte und fand, dass in iphone-sdk-3.2 gibt es einige Kern-Text-Attribute für unterstreichen einen Text, aber keine Ahnung, wie das verwenden.

Das ist, was die Dokumentation ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top