iphone uiwebview программный зум - PullRequest
1 голос
/ 21 февраля 2010

Я занимаюсь разработкой приложения, которое сохраняет HTML-файлы локально в файловой системе iPhone, а затем загружает их в UIWebView. Я хочу, чтобы можно было программно увеличивать или дважды нажимать на UIWebView, я пытался найти код JavaScript, но я мог только прокрутить.

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

sendAction:to:from:forEvent:

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#jumpTo_26

в классе UIApplication, который может отправлять действия элементам управления.

Кто-нибудь знает, как программно отправить действие двойного нажатия на UIWebView для определенного x, y?

Ответы [ 3 ]

2 голосов
/ 15 июля 2010

получить подпредставление UIWebview, которое является UIScrollview

UIScrollView *sview = [[webview subviews] objectAtIndex:0];

Затем используйте методы масштабирования.

1 голос
/ 27 декабря 2012

Это единственный способ сделать это: (укажите ваши собственные размеры, если хотите, я пытался уменьшить масштаб после ввода в поле формы)

UIScrollView *sv = [[webViewView subviews] objectAtIndex:0]; [sv zoomToRect:CGRectMake(0, 0, sv.contentSize.width, sv.contentSize.height) animated:YES];

0 голосов
/ 13 апреля 2011

Чтобы получить двойное касание из UIWebview, вам нужно создать подкласс UIWindow и использовать метод,

- (void)sendEvent:(UIEvent *)event {
    NSLog(@"tap detect");
    NSArray *allTouches = [[event allTouches] allObjects];
    UITouch *touch = [[event allTouches] anyObject];
    UIView *touchView = [touch view];

    if (touchView && [touchView isDescendantOfView:urWebview]) {
        //
        // touchesBegan
        //

        if(touch.tapCount==2){
            //
            // doubletap
            //
        }
    }
}

Из этого подкласса UIWindow используйте делегата или уведомление, чтобы поймать нажатие на ваш класс.

...