Вопрос по iphone – Как включить горизонтальную прокрутку и отключить вертикальную прокрутку в UIWebview?

10

Мой UIWebView не должен позволять вертикальную прокрутку. Тем не менее, горизонтальная прокрутка должна быть возможной.

Я просматривал документацию, но не смог найти никаких подсказок.

Следующий код отключает оба направления прокрутки, но я хочу отключить только вертикальное:

myWebView.scrollView.scrollEnabled = NO;

Как мне решить эту проблему?

Ваш Ответ

4   ответа
3
-(void) scrollViewDidScroll:(UIScrollView *)scrollView{
    if (scrollView.contentOffset.y>web.frame.origin.x) {
        scrollView.contentOffset = CGPointMake(0, 0);
    }
}

мы можем решить проблему. Возьмите глобальный объект прокрутки, как показано ниже:

UIScrollView* scrollView =web.scrollView;

затем установите делегат для просмотра с прокруткой-(void) scrollViewDidScroll:(UIScrollView *)scrollView будет вызван, и вы можете получить результат. Я проверил это в обеих версиях (iOS 5 и iOS 4.2)

укажите высоту ниже высоты рамки веб-просмотра вместо 0.
позвольте мне проверить в ios 5 и сказать.
Я думаю, это будет только скрывать индикаторы прокрутки, а не ограничивать прокрутку.
эти коды не ограничивают прокрутку в iOS5.0. bitmapdata.com
Kk теперь я понял. Можно установить размер контента как выше, что я редактировал.
1

ть прокрутку в зависимости от размера контента. Чтобы разрешить только горизонтальную прокрутку, установите contentSize что-то вроде этого:

scrollView.contentSize = CGSizeMake(1000, scrollView.bounds.size.height);

Ширина должна быть связана с шириной того, что прокручивается в представлении прокрутки.

эти коды не ограничивают прокрутку в iOS5.0 bitmapdata.com
Привет. У меня есть веб-просмотр в tablecell. Я хочу, чтобы это была горизонтальная прокрутка. Но при вертикальной прокрутке следует игнорировать и прокручивать таблицу.
4

 webview.scrollView.delegate = self;
    [webview.scrollView setShowsHorizontalScrollIndicator:NO];

}

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.x > 0)
        scrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
    if (scrollView.contentOffset.x < 0)
        scrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
}

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

Удачи

Нажмите & # xE9 ;. Но если представление прокрутки не может прокручиваться вперед, то как оно позволит вам прокручивать назад? Вы не можете выйти из дома, в который вы никогда не входили. Если вы программно не добавите представление прокрутки, для которого contentOffset уже установлено более нуля, тогда ваш код поступит.
33

Enable Horizontal scrolling and disable Vertical scrolling:

[myWebView.scrollView setShowsVerticalScrollIndicator:NO];

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y > 0  ||  scrollView.contentOffset.y < 0 )
        scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, 0);
}

2-я строка будет скрывать индикатор вертикальной прокрутки. Проверка, если & quot; scrollView.contentOffset.y & lt; нуль & Quot; отключит подпрыгивание при попытке прокрутить вниз. Вы также можете сделать: scrollView.bounces = NO, чтобы сделать то же самое! Просто взглянув на ответ Рама Рао, я могу сказать, что его код сбросит scrollView в (0.0) в тот момент, когда вы попытаетесь выполнить вертикальную прокрутку, тем самым отодвинув вас от горизонтального положения, что не очень хорошо.

Enable vertical scrolling and disable Horizontal scrolling:


[myWebview.scrollView setShowsHorizontalScrollIndicator:NO];

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.x > 0)
        scrollView.contentOffset = CGPointMake(0, scrollView.contentOffset.y);
}

PEACE

Похожие вопросы