2012-07-02 34 views
7

Tôi đang làm cho một người đọc epub, vào mà tôi đang tải trang HTML trong webview tôi:Change Format của UIWebView

[_webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:_pagesPath]]]; 

Bây giờ tôi muốn thay đổi màu nền và màu văn bản của các trang HTML của tôi. Tôi đã thay đổi màu nền của webview của tôi sử dụng,

self._webview.backgroundColor = [UIColor blackColor]; 
self._webview.opaque = NO; 

Đó là làm việc, nhưng tôi cũng muốn thay đổi màu sắc văn bản của webview của tôi. Làm thế nào để tôi làm điều này?

+0

css trang .html của bạn – janusbalatbat

+0

Có cách nào để làm programatically? bởi vì trên một số trang tôi muốn màu văn bản là màu đen và trong một số trang tôi muốn màu văn bản là màu trắng. – ketansahasrabudhe

+0

sẽ gặp sự cố nếu bạn tô màu văn bản bằng css? Ý của bạn là bạn muốn thay đổi màu chữ của ONE SINGLE .html màu đen hoặc trắng? – janusbalatbat

Trả lời

10

Trong này này đang color:#fff thẻ sử dụng cho màu chữ #fff sử dụng màu đen

NSString *webStr [email protected]"Your text use"; 

[self._webview loadHTMLString:[NSString stringWithFormat:@"<div id ='foo' align='left' style='line-height:18px; float:left;width:300px; font-size:13px;font-family:helvetica;background-color:transparent; color:#fff;>%@<div>",webStr] baseURL:nil]; 

nếu bạn sử dụng html địa phương việc sử dụng

NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html"]; 

NSString* text = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil]; 
NSLog(@"%@",htmlFile); 

NSLog(@"Hello"); 

[self._webview loadHTMLString:[NSString stringWithFormat:@"<html><body bgcolor=\"#000000\" text=\"#FFFFFF\" face=\"Bookman Old Style, Book Antiqua, Garamond\" size=\"5\">%@</body></html>", text] baseURL: nil]; 
+0

tôi đang tải tệp html cục bộ từ máy của tôi như thế này, '[_webview loadRequest: [NSURLRequest requestWithURL: [NSURL fileURLWithPath: _pagesPath]]];' – ketansahasrabudhe

+0

xem câu trả lời cập nhật của tôi – Deepesh

+0

'changeColor' trong EDIT của bạn là gì? tôi chưa thêm bất kỳ lớp nào như 'changeColor' trong css – ketansahasrabudhe

0

thử thêm mã trong HTML của bạn tập tin những gì bạn đang nhận được từ máy chủ ... sau đó chỉ có bạn có thể thay đổi màu văn bản .... hoặc thêm một số mã HTML trước khi tập tin HTML của bạn để thay đổi màu sắc của văn bản

0

hãy thử điều này ...

  1. Phân tích cú pháp tệp html.
  2. Hiển thị nội dung theo yêu cầu của bạn.

Hy vọng điều này sẽ hữu ích.

5
[_webview loadHTMLString:[NSString stringWithFormat:@"<html><body style=\"background-color: white; font-size: 17; font-family: HelveticaNeue; color: #ffffff\">%@</body></html>", strDataFromHTML] baseURL: nil]; 
+0

dude tôi đang đọc một tập tin html từ mô phỏng của tôi đường dẫn, như '/ Users/krunal/Library/Hỗ trợ ứng dụng/iPhone Simulator/5.0/Applications/D414BC19-C005-4D93-896D-A6FB71DE4D21/Documents/first.html' và tôi không biết, nội dung bên trong sẽ là gì 'first.html' – ketansahasrabudhe

1

I made a method rằng kết thúc tốt đẹp một số văn bản trong một cơ thể HTML với phong cách chính xác cho một trao UIColorUIFont.

Đơn giản chỉ cần bật HTML được tạo ra vào webview:

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

Cảm ơn, đã đánh cắp mã của bạn và tạo một danh mục từ nó :) –

1

Đây là một Swift mở rộng nhỏ để xử lý này:

import UIKit 

extension String 
{ 
    func htmlFormattedString(font:UIFont, color: UIColor) -> String 
    { 
     var numberOfColorComponents:Int = CGColorGetNumberOfComponents(color.CGColor) 
     var colorComponents = CGColorGetComponents(color.CGColor) 

     var colorHexString = "" 
     if numberOfColorComponents == 4 { 
      var red = colorComponents[0] * 255 
      var green = colorComponents[1] * 255 
      var blue = colorComponents[2] * 255 

      colorHexString = NSString(format:"%02X%02X%02X", Int(red), Int(green), Int(blue)) as String 
     } else if numberOfColorComponents == 2 { 
      var white = colorComponents[0] * 255 

      colorHexString = NSString(format:"%02X%02X%02X", Int(white), Int(white), Int(white)) as String 
     } else { 
      return "Color format noch supported" 
     } 

     return NSString(format: "<html>\n <head>\n <style type=\"text/css\">\n body {font-family: \"%@\"; font-size: %@; color:#%@;}\n </style>\n </head>\n <body>%@</body>\n </html>", font.familyName, String(stringInterpolationSegment: font.pointSize), colorHexString, self) as String 
    } 
} 
+0

Xin chào, Bạn có thể cho tôi biết cách tôi có thể tải chuỗi của mình vào chế độ xem web sau khi vượt qua giới hạn này không – user1960169