gpt4 book ai didi

iphone - 如何在 UIWebView 中正确显示 TXT 或 ASCII 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:24:36 26 4
gpt4 key购买 nike

我正在尝试将 TXT 文件 (ASCII) 显示到 UIVewView 中。例如,使用网站 www.partisani.net/35.txt在 MacBook 上的 Safari 中运行良好,在 iPhone 上的 Safari 则不行。 Safari 的 iPhone 以另一种布局显示文件。有人可以帮帮我吗?

最佳答案

据我所知,Mac 和 iOS 上的文件布局完全相同。你在谈论文字换行吗?您可以通过调整浏览器的大小在 Mac 上看到它。

如果您想以不同方式处理行长度,您需要通过设置滚动来实现。

更新更多细节:

这种“某种程度上”改变了原来的内容:)。基本上,您需要调整 webview 的 contentSize 并将文本文件嵌入到一些样板 HTML 中以重排文本,而不是将默认视口(viewport)宽度分配给文本文档。后者我用类似的东西完成:

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 很重要,因为您还需要让您的 Controller 符合 UIWebViewDelegate 协议(protocol)并实现 webViewDidFinishLoad: 方法。您可以在那里根据需要设置 webview 的滚动宽度和高度:

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

这是一个非常准系统的实现——大概您还希望逻辑根据加载的文本计算必要的宽度和高度,而不是使用此处所示的常量;为此,您需要一些与原始数据关联的解析逻辑,但这应该可以帮助您入门。

关于iphone - 如何在 UIWebView 中正确显示 TXT 或 ASCII 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8407684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com