UIWebView не масштабирует больше, чем x2 - PullRequest
1 голос
/ 01 декабря 2011

В UIWebView есть много вопросов с масштабированием, но я не смог найти ответ на мой.

У меня есть ViewController с WebView.Я загружаю SVG-файл в этот WebView и хочу увеличить его, нажав на него.Вот код:

@interface ViewController : UIViewController <UIGestureRecognizerDelegate>
{
    IBOutlet MyWebView *webView;
    UITapGestureRecognizer *doubleTapRecognizer;
    CGFloat k;
}

...

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[webView loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"map" withExtension:@"svg"]]];
webView.scalesPageToFit = YES;

webView.scrollView.maximumZoomScale = 512;
webView.scrollView.minimumZoomScale = 0.1;

doubleTapRecognizer.numberOfTapsRequired = 2;
doubleTapRecognizer.numberOfTouchesRequired = 1;

doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap:)];
doubleTapRecognizer.delegate = self;
doubleTapRecognizer.enabled = YES;
[webView addGestureRecognizer:doubleTapRecognizer];

k = 1;
}

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    return YES;
}

- (void)doubleTap:(UITapGestureRecognizer*)sender
{
    if (sender.state == UIGestureRecognizerStateEnded)
    {
        k = 10;
// No one does not work correctly
        [webView.scrollView setZoomScale:k animated:YES];
//      [webView setContentScaleFactor:k];
//      [webView.scrollView setContentScaleFactor:k];
//      webView.scrollView.zoomScale = k;
//      [webView.scrollView zoomToRect:CGRectMake(webView.bounds.origin.x, webView.bounds.origin.y, webView.bounds.size.width/k,  webView.bounds.size.height/k) animated:YES];
    }
}

Теперь WebView увеличивается при нажатии, но только на x2 и больше.Что не так и как я могу увеличить x10?

1 Ответ

1 голос
/ 01 декабря 2011

Вы пытались ущипнуть?

Это не потому, что вы установили максимальное увеличение на 512 или 10, при двойном нажатии вы увеличите масштаб до этого уровня, что означает нажатие на небольшой элемент в веб-представлении, это увеличит масштаб, чтобы заполнить доступное пространство. веб-представления независимо от значения масштабирования вплоть до максимального значения масштабирования.

Таким образом, что-то, занимающее половину экрана, увеличит масштаб в 2 раза, меньше будет больше.

...