0

私はウェブから画像を取得できるアプリに取り組んでいます。実際に画像をダウンロードするのではなく、UIWebViewに表示しようとしています。画面上で画像を特定のサイズにする必要があるため、必要なサイズのWebビューを作成し、scalesPageToFitに指示しましたが、実行すると、画像がビュー内の正しいサイズではありません。テストとして1024x768の画像を使用しており、画面上で正しく表示されるようにビューサイズを何度も繰り返してみましたが、サイズが正しくないか、クリップしてしまいます。

これが元の画像です。http://www.coolopticillusions.com/backgrounds/freaky-desktop-background-7.jpg

画像を300幅にしようとしています。これは、アスペクト比を維持するため、ビューの高さを245にする必要があります。

この最初のスクリーンショットは300x245UIWebViewを使用したもので、幅は正しいが高さは正しくないことがわかります。赤いボックスは画像の下部 http://img839.imageshack.us/f/sizecroppedと正確に位置合わせされている必要があります。 png /

この2番目のスクリーンショットは、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;
4

1 に答える 1

1

アプリケーションフレームをフレームとして最初にwebviewを作成します。次に、サイズ(300x245)の新しいイメージビューに画像を追加できます。画像をサブビューとして Web ビューに追加します。

    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];

それが役に立ったかどうか教えてください。

于 2011-03-28T19:55:15.083 に答える