UIWebView рисует среди остального текста

#iphone #objective-c

#iPhone #objective-c

Вопрос:

В HTML-строке, которую я получаю, есть это. <br/> Затем это отображается UIWebView как
среди остального текста.

Когда я NSLog строку, содержащую html, она содержит

 amp;<br/amp;> 
  

в том месте, где
появляется в UIWebView.

Почему это происходит? Если это допустимый HTML, должен ли UIWebView перейти на новую строку, а не рисовать это?

Кто-нибудь может предложить решение этой проблемы?

Большое спасибо, -Code

Редактировать

Вот код, в котором я использую UIWebView

     aWebView2 = [[UIWebView alloc] initWithFrame:CGRectMake(0, 45 offset cumlativeOffset,480 , 50)];//init and create the UIWebView

aWebView2.autoresizesSubviews = YES;
aWebView2.autoresizingMask=(UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth);
[aWebView2 setBackgroundColor:[UIColor clearColor]];
[aWebView2 setOpaque:NO];

[aWebView2 setDelegate:self];
NSMutableString * indicationAndDose2 = [[NSMutableString alloc] init];
[indicationAndDose2 appendString:@"<html><style type="text/css">"
"html {-webkit-text-size-adjust:90%;color:#145e59; background-color:white }"
"body {font-family:"Helvetica"}"
"</style><body>"];
[indicationAndDose2 appendString:@"<b>CONTRAINDICATIONS:</b>"];
NSLog(@"v1x");
[indicationAndDose2 appendString:theMonograph.contra_indications];
[aWebView2 loadHTMLString:indicationAndDose2 baseURL:nil];
[[[aWebView2 subviews] lastObject] setScrollEnabled:NO]; 
NSLog(@"v1y");  
[scrollview addSubview:aWebView2];
  

Еще раз спасибо,
-Код

Комментарии:

1. Добавлен некоторый код по запросу Twelve47 🙂

2. что вы используете для написания этого br?

3. Если html содержит <br/> , webview перейдет на новую строку. Но если html содержит <br/> вместо этого, webview будет рисовать «<br/>». Это совершенно нормально, поскольку «<» является управляющим символом для «<«, а «amp; >» является управляющим символом для «>». Сле довательно, проблема, похоже, заключается в генерации html.

4. Есть ли способ удалить управляющие символы? Или мне самому удалить их из строк грубой силой?

Ответ №1:

Как заполнить эту строку переменной — «theMonograph.contra_indications»? Его швы уже содержат символы в кодировке URL (amp;lt,amp;gt).

О кодировании / декодировании строк URL вы можете проверить эти методы:

 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding
stringByReplacingPercentEscapesUsingEncoding

CFURLCreateStringByAddingPercentEscapes
CFURLCreateStringByReplacingPercentEscapes