2011-03-28 109 views
0

我正在研究可以从网上检索图像的应用程序。而不是实际下载图像,我试图在UIWebView中显示它们。我真的需要将图像作为屏幕上的特定尺寸,所以我制作了我需要的尺寸的webview,并将其告知scalesPageToFit,但是当我运行时,图像在视图内不是正确的尺寸。我正在使用1024x768的图像作为测试,并且尝试了大量视图大小的迭代以使其在屏幕上正确显示,但我最终的结果不合逻辑,或者它被剪辑。UIWebView内容大小

这是原始图像; http://www.coolopticalillusions.com/backgrounds/freaky-desktop-background-7.jpg

我想使图像300宽,保留纵横比,意味着视图应该是245高。

这第一张截图是一个300x245的UIWebView,你可以看到宽度是正确的,但高度不是,红色框应恰好与图像 http://img839.imageshack.us/f/sizecropped.png/

的底部对齐本次截图使用300x300,这样会将图像过大,以至于看起来也太高。 http://img155.imageshack.us/f/sizetoobig.png/

我一直在努力争取一段时间,试图让这个做我想做的事,但我没有任何成就。

编辑:唯一相关的代码,我是这样的:

NSMutableString *urlString = [[NSMutableString alloc] initWithString:@"http://www.coolopticalillusions.com/backgrounds/freaky-desktop-background-7.jpg"]; 
NSURL* url = [[NSURL alloc] initWithString:urlString]; 
NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:url]; 
[messageView.imageWebView loadRequest:urlRequest]; 
messageView.imageWebView.scalesPageToFit = YES; 
+0

你可以发布你的代码吗? – doonot 2011-03-28 19:48:42

回答

1

我会首先创建web视图与应用程序框架的框架。然后,您可以将图像添加到具有您的尺寸的新图像视图(300x245)。将图像作为子视图添加到webview。

CGRect frame = [[UIScreen mainScreen] applicationFrame]; 
    webView = [[UIWebView alloc] initWithFrame:frame]; 

    // get image from web 
    id path = @"http://www.coolopticalillusions.com/backgrounds/freaky-desktop-background-7.jpg"; 
    NSURL *url = [NSURL URLWithString:path]; 
    NSData *data = [NSData dataWithContentsOfURL:url]; 
    UIImage *img = [[UIImage alloc] initWithData:data cache:NO]; 

    // create new image view with your prefered size 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:img]; 
    imageView.frame = CGRectMake(0, 0, 300, 245); 

    // add image view to your webview 
    [webView addSubview:imageView]; 

让我知道是否有帮助。

+0

如何从webview中获取图像?这似乎比我想要做的更容易,如果我可以这样做然后 – 2011-03-28 20:36:19

+0

你可以通过它的url获得一个UIImage:id path = @“http://www.coolopticalillusions.com/backgrounds/freaky-desktop-背景7.JPG“; NSURL * url = [NSURL URLWithString:path]; NSData * data = [NSData dataWithContentsOfURL:url]; UIImage * img = [[UIImage alloc] initWithData:data cache:NO]; – doonot 2011-03-29 08:12:39

+0

哇,这很简单,我希望我早点知道这个功能,现在我可以使用图像视图,而不是使用webview复杂化它。非常感谢! – 2011-03-29 17:25:20