Размер содержимого UIWebView - PullRequest
0 голосов
/ 28 марта 2011

Я работаю над приложением, которое может извлекать изображения из Интернета.Вместо того, чтобы фактически загружать изображения, я пытаюсь отобразить их в UIWebView.Мне действительно нужно, чтобы изображения были определенного размера на моем экране, поэтому я сделал веб-просмотр нужного мне размера и сказал это scalePageToFit, но когда я запускаю, изображение не соответствует нужному размеру в представлении.Я использую изображение 1024x768 в качестве теста и пробовал множество итераций размеров представления, чтобы получить правильное изображение на моем экране, но я либо получаю нелогичный размер, либо оно обрезается.

Вот исходное изображение;http://www.coolopticalillusions.com/backgrounds/freaky-desktop-background-7.jpg

Я пытаюсь сделать изображение шириной 300, при этом сохраняя соотношение сторон, это будет означать, что вид должен иметь высоту 245.

Этот первый снимок экрана с UIWebView 300x245, вы можетевидим правильную ширину, но не высоту, красное поле должно быть точно выровнено по нижней части изображения 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 Ответ

1 голос
/ 28 марта 2011

Я бы сначала создал веб-просмотр с фреймом приложения.Затем вы можете добавить свое изображение в новый просмотр изображений, который имеет ваш размер (300x245).Добавьте изображение в веб-просмотр в качестве подпредставления.

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

Дайте мне знать, помогло ли это.

...