سؤال

لا بد لي من رسم النص المسطّر بين السترة مع جميع أنواع محاذاة النص. لقد بحثت في المنتديات وحصلت على بعض النتائج مثل:

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

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

ولكن كل رسم نص لخط واحد فقط. بينما لدي نص متعدد الخطوط. يصبح الوضع أسوأ عندما تتركز محاذاة النص. لقد بحثت ووجدت أنه في 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);
                    }
                }

            }

أتمنى أن يعمل هذا بشكل جيد للجميع.

شكرًا،

مادهوب

نصائح أخرى

استخدم النص الأساسي.

لقد بحثت ووجدت أنه في iPhone-SDK-3.2 ، هناك بعض سمات النص الأساسي للتأكيد على النص ولكن لا توجد فكرة عن كيفية استخدام ذلك.

وهذا ما وثائق هو ل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top