IOS UIWebView, CSS & и проценты - PullRequest
       1

IOS UIWebView, CSS & и проценты

1 голос
/ 04 ноября 2011

Я разрабатываю приложение для iOS, которое загружает содержимое строки html с помощью таблицы стилей CSS в UIWebView, но у меня возникают проблемы, когда я использую процент «%» для определения ширины изображения.Это просто не работает!

- (void) loadHTMLContent {

NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];


textFontSize = 120;

NSString *imggt;
if (item.imggt) 
    imggt = [NSString stringWithFormat:@"<br /><img src='%@' />",item.imggt];
else
    imggt = @"";

NSString *cssCode = [NSString stringWithFormat:@" \n"
                       "body{ font-family: Georgia; color: #333; margin: 0; padding: 0; line-height: 1.2em; } \n"
                       "h4, h3, h5{ margin: 0 0 5px 0; padding: 0em; text-shadow: 2px 2px 2px rgba(255, 255, 255, 0.8); } \n"
                       "h3{ font-family: Helvetica; font-size: 1.2em; letter-spacing: -1px; } \n"
                       "h3, #autor { color: #00365B; }   \n"
                       "h4,h5{ font-weight: normal; font-size: 0.75em; }\n"
                       "h4{ color: #0069AA; } \n"
                       "h5{ text-align:justify; } \n"
                       "#zigzag { height:15px; background-image:url('zigzag.png');background-repeat:repeat-x; }\n"
                       "#destacados, #cuerpo{ padding: 0 10px; } \n"
                       "#destacados{ background-image:url('fndNoticia.png'); padding-bottom: 29px; margin-bottom: 0px; } \n"
                       "#destacados img { width: 97%; text-align:center; margin: 0 auto; border: 8px solid #FFF; } \n"
                       "#fecha_autor{ font-size: 0.75em; border-bottom: 1px solid #D7D7D7; height: 20px; padding-bottom: 8px; margin: 13px 0; } \n"
                       "#fecha{ color: #666;} \n"
                       "#autor{ float: right; } \n"
                       "#texto{ font-size: 0.80em; line-height: 1.2em; text-align:justify; } \n"];

NSString *htmlCode = [NSString stringWithFormat:@" \n"

                      "<html> \n"
                      "     <head> \n"
                      "     <title></title> \n"
                      "     <style>%@</style></head> \n" //CSS
                      "     <body> \n"
                      "         <div id='destacados'> \n"
                      "             <br /><h4>%@</h4> \n"         //Category
                      "             <h3>%@</h3> \n"         //Title
                      "             <h5>%@</h5>%@ \n"         //Subtitle & Imggt in HTML
                      "         </div> \n"
                      "          <div id='zigzag'>&nbsp;</div> \n"
                      "         <div id='cuerpo'> \n"
                      "             <div id='fecha_autor'> \n"
                      "                 <span id='fecha'>%@</span> \n" //Date
                      "                 <span id='author'>%@</span> \n" //Author
                      "             </div> \n"
                      "             <div id='texto'>%@</div> \n"
                      "         </div> \n"
                      "         %@ \n" //Nielsen code
                      "     </body> \n"
                      "</html>  \n",cssCode,item.category,item.title,item.subtitle,imggt,item.pubDate,item.author,[item.text stringByReplacingOccurrencesOfString:@"[br]" withString:@"<br />"],[AppStaticData getNielsenSiteCensusHTMLImageOfArticle:item.url]];  

[webView loadHTMLString:htmlCode baseURL:baseURL];

} 

Код CSS и HTML, протестированный в браузере, работает:

iOs and Chrome browsers

Кажется, проблема здесь:

  "#destacados img { width: 97%; text-align:center; margin: 0 auto; border: 8px solid #FFF; } \n"

Кажется, я не могу использовать проценты, чтобы установить значение изображения.Зачем?Есть ли другой способ увеличить исходное изображение относительно размера контейнера?

1 Ответ

2 голосов
/ 04 ноября 2011

Вы должны экранировать '%' в вашем CSS-коде, прежде чем создавать [NSString stringWithFormat]. Если вам даже не нужна сборка строк из простого

формата
NSString *cssCode = @"your css {}";

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...