HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 画下划线/删除线文字(MULTILINE STRING)?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须绘制带有下划线的多行文本,其中包含所有类型的文本对齐方式.我在论坛上搜索过并获得了一些结果:

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

@L_696_2@

但是所有人都只为单行绘制文字.我有多行文字.当文本对齐居中时,情况甚至变得更糟.我搜索并发现在iphone-sdk-3.2中有一些核心文本属性用于加下划线但不知道如何使用它.此外,如果我使用这些,我的问题将无法完全解决.

因为我还要画出删除线文字.

任何有这个想法的人请帮忙.

解决方法

那这个呢.如果这需要一些优化,这对你们有什么好处?

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

            }

希望这对所有人都有益.

谢谢,

@H_475_5@madhup

大佬总结

以上是大佬教程为你收集整理的iphone – 画下划线/删除线文字(MULTILINE STRING)?全部内容,希望文章能够帮你解决iphone – 画下划线/删除线文字(MULTILINE STRING)?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。