gpt4 book ai didi

objective-c - 如何在 UIWebview 中调整图像大小?

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

我在 UIWebview 中加载一个 html 文件。我正在尝试在 UIWebview 中调整图像大小并完成加载。在此 webview 中,根据设备大小将 html 内容拆分为页数(下面的代码显示)。对于分页,我使用了滑动手势。它可以正常工作,直到这个。在这个 html 文件中,我有一些图像,它们的大小各不相同。有些图像超过了设备宽度。我需要修复图像的宽度,使其适合屏幕。我不想滚动 webview,因为我使用滑动手势进行分页。那么如何根据设备宽度调整图像的大小。

我使用下面的代码

- (void)webViewDidFinishLoad:(UIWebView *)webView
{


NSString *varMySheet = @"var mySheet = document.styleSheets[0];";

NSString *addCSSRule = @"function addCSSRule(selector, newRule) {"
"if (mySheet.addRule) {"
"mySheet.addRule(selector, newRule);" // For Internet Explorer
"} else {"
"ruleIndex = mySheet.cssRules.length;"
"mySheet.insertRule(selector + '{' + newRule + ';}', ruleIndex);" // For Firefox, Chrome, etc.
"}"
"}";

NSString *insertRule1 = [NSString stringWithFormat:@"addCSSRule('html', 'padding: 0px; height: %fpx; -webkit-column-gap: 0px; -webkit-column-width: %fpx;')", webview4epub.frame.size.height, webview4epub.frame.size.width];
NSString *insertRule2 = [NSString stringWithFormat:@"addCSSRule('p', 'text-align: justify;')"];

[webview4epub stringByEvaluatingJavaScriptFromString:varMySheet];
[webview4epub stringByEvaluatingJavaScriptFromString:addCSSRule];
[webview4epub stringByEvaluatingJavaScriptFromString:insertRule1];
[webview4epub stringByEvaluatingJavaScriptFromString:insertRule2];
NSString* foundHits = [webview4epub stringByEvaluatingJavaScriptFromString:@"results"];
NSMutableArray* objects = [[NSMutableArray alloc] init];

NSArray* stringObjects = [foundHits componentsSeparatedByString:@";"];
for(int i=0; i<[stringObjects count]; i++){
NSArray* strObj = [[stringObjects objectAtIndex:i] componentsSeparatedByString:@","];
if([strObj count]==3){
[objects addObject:strObj];
}
}


int totalWidth = [[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.scrollWidth"] intValue];

}

最佳答案

这会将第一个图像调整为 webView 高度的 90%:

 NSString *imgHeightJSString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('img')[0].style.maxHeight = '%fpx'", webView.bounds.size.height*0.90];
[webView stringByEvaluatingJavaScriptFromString:imgHeightJSString];

无论 view.size 是什么,这都是 90% imageSize:

 [webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('img')[0].style.maxHeight = '90%%'"] ;

要设置宽度,只需使用 maxWidth 而不是 maxHeight。

关于objective-c - 如何在 UIWebview 中调整图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11362563/

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