UIWebView内容大小

时间:2011-03-28 19:33:29

标签: iphone uiwebview interface-builder contentsize

我正在开发一款可以从网络上检索图片的应用。而不是实际下载图像,我试图在UIWebView中显示它们。我真的需要在屏幕上显示特定尺寸的图像,所以我制作了一个我需要的尺寸的webview,并告诉它为scalesPageToFit,但是当我运行时,图像在视图中的大小不正确。我使用1024x768图像作为测试,并尝试了多次视图大小的迭代,以使其在我的屏幕上正确,但我最终得到一个不合逻辑的大小,或者它剪辑。

这是原始图像; 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;

1 个答案:

答案 0 :(得分:1)

我首先使用应用程序框架作为框架创建webview。然后,您可以将图像添加到具有您的尺寸(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];

如果有帮助,请告诉我。