Как правильно показать TXT или ASCII файл в UIWebView - PullRequest
2 голосов
/ 07 декабря 2011

Я пытаюсь показать TXT file (ASCII) в UIVewView.Например, использование сайта www.partisani.net / 35.txt в Safari на MacBook работает нормально, Safari на iPhone - нет.IPhone в Safari показывает файл с другим макетом.Может ли кто-нибудь помочь мне, пожалуйста?

Ответы [ 3 ]

2 голосов
/ 07 декабря 2011

Насколько я могу судить, расположение файла на Mac против iOS точно такое же. Вы говорите о переносе текста? Вы можете увидеть это на Mac, изменив размер браузера.

Если вы хотите обрабатывать длину строки по-другому, вам нужно настроить прокрутку.

ОБНОВЛЕНИЕ с более подробной информацией:

Этот «вид» меняет исходный контент :). По сути, вам нужно настроить и contentSize веб-просмотра, и встроить текстовый файл в некоторый шаблонный HTML, чтобы переформатировать текст, а не назначать ширину области просмотра по умолчанию для текстового документа. Последнее я делаю с чем-то вроде:

NSURL* url = [NSURL URLWithString:@"http://www.partisani.net/35.txt"];
UIWebView* vw = (UIWebView*)self.view;
vw.delegate = self;

NSData* Data = [NSData dataWithContentsOfURL:url];
NSString* aStr = [[NSString alloc] initWithData:Data encoding:NSASCIIStringEncoding];

NSString* responseStr = [NSString stringWithFormat:
                         @"<HTML>"
                         "<head>"
                         "<title>Text View</title>"
                         "</head>"
                         "<BODY>"
                         "<pre>"
                         "%@"
                         "/pre>"
                         "</BODY>"
                         "</HTML>",
                         aStr];
[vw loadHTMLString:responseStr baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];
[aStr release];

Важно vw.delegate = self, так как вам также необходимо, чтобы ваш контроллер соответствовал протоколу UIWebViewDelegate и реализовал метод webViewDidFinishLoad:. Там вы можете установить ширину прокрутки и высоту вашего веб-просмотра по мере необходимости:

- (void) webViewDidFinishLoad:(UIWebView *)webview {    
     UIScrollView* sview = (UIScrollView*)[[webview subviews] objectAtIndex:0];
     sview.contentSize = CGSizeMake(1000, 800);
}

Это очень скромная реализация - возможно, вы бы хотели, чтобы логика вычисляла необходимую ширину и высоту на основе загруженного текста, а не использовала константы, как показано здесь; для этого вам понадобится логика синтаксического анализа, связанная с исходными данными, но с этого следует начать.

0 голосов
/ 07 декабря 2011

Я не уверен, что это на самом деле связано с TXT или ASCII, а скорее с UIWebview, изменяющим размер содержимого.

Файл, который вы упомянули, загруженный на экран ipad в альбомной ориентации, имеет ту же структуру, что и в Mac Safari:

enter image description here

Вы можете изменить, будет ли UIWebView масштабировать свое содержимое с помощью свойства scalePageToFit.

0 голосов
/ 07 декабря 2011

Если для свойства scalePageToFit установлено значение yes, это может решить вашу проблему.

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