سؤال

لا بد لي من إظهار النص المنسق الذي أسحبه من الخادم، لذلك أستخدم UIWebView.المشكلة الآن هي أنه ليس لدي أي سيطرة على الخط المستخدم في UIWebView.كيف يمكنني تغيير الخط لاستخدام خط النظام (مما يجعله متوافقًا مع بقية التطبيق)؟

أفعل شيئًا كهذا في الوقت الحالي:

myRichTextView = [[UIWebView alloc] initWithFrame:CGRectMake(x, y, width, height)];
myRichTextView.backgroundColor = [UIColor clearColor];
[myRichTextView setScalesPageToFit:NO];
[myRichTextView loadHTMLString:myString baseURL:[NSURL URLWithString:myBaseURL]];

مرة أخرى، تحتاج إلى التحكم في خط العرض.إذا لم أتمكن من التحكم في الخط، فيرجى إخباري بالبدائل الأخرى لـ UIWebView.

شكرًا

هل كانت مفيدة؟

المحلول

قم بالإشارة إلى ورقة أنماط CSS في مستند HTML الخاص بك أو ضع معلومات النمط في الجزء العلوي من مستند HTML نفسه

نصائح أخرى

لقد نجحت عندما قمت بتعديل السلسلة مثل هذا.حقك يا كريس، لا ينبغي أن يحدث أي فرق.

NSString *myDescriptionHTML = [NSString stringWithFormat:@"<html> \n"
                                "<head> \n"
                                "<style type=\"text/css\"> \n"
                                "body {font-family: \"%@\"; font-size: %@;}\n"
                                "</style> \n"
                                "</head> \n"
                                "<body>%@</body> \n"
                                "</html>", @"helvetica", [NSNumber numberWithInt:kFieldFontSize], content];

أستخدم CSS التالي في عرض الويب للقيام بما تقوله بالضبط.

body
{
    font-family:helvetica;
}

لكن يبدو أن جهازك يجب أن يعمل أيضًا.غريب.الفرق الوحيد الذي يمكنني رؤيته هو الخط مقابل عائلة الخطوط، لكن هذا لا ينبغي احداث فرق.

كريس.

خط النظام

-نظام التفاح على iOS 9 وSafari OS X 10

font-family: -apple-system;
font-family: '-apple-system','HelveticaNeue'; // iOS 8 compatible

لقد صنعت طريقة يقوم بتغليف بعض النص في نص HTML بالنمط الصحيح لعنصر معين UIColor و UIFont.تعتمد على يجيب مصطفى.

يتم استخدامه مثل هذا:

NSString * htmlString = [MyClass htmlFromBodyString:@"an <b>example</b>"
                                           textFont:[UIFont systemFontOfSize:10]
                                          textColor:[UIColor grayColor]];
[webView loadHTMLString:htmlString baseURL:nil];

طريقة سهلة أخرى عملت بالنسبة لي

    UIFont *font = [UIFont systemFontOfSize:15];

      NSString *htmlString = [NSString stringWithFormat:@"<span style=\"font-family:Helvetica; font-size: %i\">%@</span>",
                     (int) font.pointSize,
                     [bodyText stringWithNewLinesAsBRs]];
       [myWebView loadHTMLString:htmlString baseURL:nil];

مجرد تغيير

font:helvetica

ل

font-family:helvetica

أنا أستعمل

body {
        font-family: 'Noteworthy-Bold';
    }

يعمل هذا بشكل جيد مع صفحتي (WebView)، حيث يستخدم باقي تطبيقي أيضًا "Noteworthy-Bold" من Apple.

إذا كنت تريد استخدام الخط الخاص بك، فاستخدم @font-face وارجع إلى ملف TTF أو EOT.

إليك الحل سهل الاستخدام وسهل التوسيع مع المزيد من إعدادات الخط:

                myHTMLLabel = [[UIWebView alloc] initWithFrame:CGRectMake(myX,myY,myWidth,myHeight)];

                myHTMLLabel.userInteractionEnabled=NO;
                myHTMLLabel.scalesPageToFit=NO;

                [myHTMLLabel setOpaque:NO];
                myHTMLLabel.backgroundColor = myBackColor;

                NSString *myHTMLText = [NSString stringWithFormat:@"<html>"
                                        "<head><style type='text/css'>"
                                        ".main_text {"
                                        "   display: block;"
                                        "   font-family:[fontName];"
                                        "   text-decoration:none;"
                                        "   font-size:[fontSize]px;"
                                        "   color:[fontColor];"
                                        "   line-height: [fontSize]px;"
                                        "   font-weight:normal;"
                                        "   text-align:[textAlign];"
                                        "}"
                                        "</style></head>"
                                        "<body> <SPAN class='main_text'>[text]</SPAN></body></html>"];

                myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[text]" withString: myText];
                myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontName]" withString: myFontName];
                myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontSize]" withString: myFontSize];           
                myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[fontColor]" withString: myFontColorHex];
                myHTMLText = [myHTMLText stringByReplacingOccurrencesOfString: @"[textAlign]" withString: myFontAlign];


                NSLog(@"*** renderHTMLText --> myHTMLText: %@",myHTMLText);

                [myHTMLLabel loadHTMLString:myHTMLText baseURL:nil];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top