2011-03-28 106 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