Я должен показать веб-статью с пометкой UITableView
под статьей.
Единственный вариант, который я нашел, - это отобразить статью в UIWebView
заголовке tableView.
Для этого мне нужно получить высоту содержимого webView и отключить прокрутку для webView.
Я нашел два решения для отключения прокрутки:
for (id subview in webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).scrollEnabled=NO;
или в JavaScript:
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
Я слышал, что первое решение запрещено Apple, но у меня нет никаких доказательств этого. Будет ли моя заявка отклонена при использовании этого решения? Если да, могу ли я использовать второе решение без отказа?
webView.scrollView.bounces = NO;
? поскольку код в первой строке отключил прокрутку.Поскольку этот вопрос по-прежнему актуален, есть новый способ сделать это! (iOS 7.0+, возможно, iOS 6, не подтверждено)
webView.scrollView.scrollEnabled = NO;
Береги себя :)
источник
Вы можете просто установить для свойства взаимодействия с пользователем веб-просмотр значение no, т.е.
webView.userInteractionEnabled = NO;
Это довольно просто и отлично работает, спасибо :)
источник
для всех версий ios вы можете использовать этот код вместо setScrollEnabled:
for (UIView *view in webview.subviews) { if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView *scrollView = (UIScrollView *)view; scrollView.scrollEnabled = NO; } }
источник
Используйте этот
<body ontouchmove="event.preventDefault()">
источник
SWIFT 3 версия
webView.scrollView.bounces = false webView.scrollView.isScrollEnabled = false
источник
Я думаю, что Javascript
<script type="text/javascript"> touchMove = function(event) { event.preventDefault(); }
это лучшее решение.
На самом деле :
Ваш первый экзамен, или
[[[WebView subviews] lastObject] setScrollingEnabled:NO];
one (то же самое) может быть отклонено, потому что не задокументировано, или может привести к сбою вашего приложения при следующем обновлении ios.
И
[[myWebView scrollView] setBounces:NO];
не будет работать с iOS <5.
источник
[[[WebView subviews] lastObject] setScrollingEnabled:NO];
это решило для меня
источник
Первый отвергается Apple. Это случилось со мной сегодня утром.
источник
[[myWebView scrollView] setBounces: НЕТ];
источник
Я не думаю, что Apple запрещает первый вариант.
Вы могли бы попробовать
[[[Webview subviews] lastObject] setScrollingEnabled:NO];
Если вы не хотите, чтобы какие-либо ссылки работали в вашем UIWebView, вы также можете сделать
[myWebView setUserInteractionEnabled:NO];
источник
Используй это :
[[webView scrollView] setBounces:NO]; [[webView scrollView] setScrollingEnabled:NO];
источник
Попробуй это,
[(UIScrollView *)[[webView subviews] lastObject] setScrollEnabled:NO];
источник
Я поместил несколько
UIWebView
s внутрь a,UIScrollView
и он не прокручивался для меня, если я не отключил взаимодействие с пользователем в веб-просмотрах (даже с помощью[[webview scrollview] setScrollEnabled:NO]
). Итак, я поместилUIWebView
s внутрь a,UIView
и это сработало для меня, но затем интерактивные ссылки или div в моем HTML внутри большеUIWebView
не работали.Единственное, что сработало для меня, - это сохранить
UIWebView
внутреннюю часть,UIScrollView
чтобы взаимодействие HTML работало, аUIScrolling
не - нет.Затем я создал настраиваемого делегата для просмотра веб-страниц,
window.open("http:/customEvent")
который вызывается из HTML-кода, содержащегося в веб-просмотре. Я также добавил обнаружение смахивания JavaScript, которое запускает мое пользовательское событие.Когда делегат webview получает это, я передаю уведомление контроллеру, который затем динамически прокручивает мои
UIScrollView
. Очевидно, мне пришлось создать логику для отслеживания и прокрутки к следующей или предыдущей странице. Не самое красивое решение, но оно работает для меня.источник
Попробуйте это в своем HTML (
<HEAD>
теге)<script> document.ontouchmove = function(event) { event.preventDefault(); } </script>
Это отключит прокрутку на вашей веб-странице.
(работает на любой веб-странице, а не только на UIWebView)
источник
Мне нужно было отключить прокрутку, потому что отключение настраиваемой клавиатуры действительно испортило прокрутку с помощью webView. Больше ничего не работало, и я прибег к примерно такому:
-(void)viewDidLoad{ [super viewDidLoad]; [self.webView.scrollView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil]; self.webView.scrollView.showsVerticalScrollIndicator = NO; } -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{ if (!CGPointEqualToPoint(self.webView.scrollView.contentOffset, CGPointZero)){ self.contentOffset = CGPointZero; } }
источник
Являются ли UIWebview и UITableView в UIScrollview и установка высоты веб-просмотра (и добавление к общему ContentSize Scrollview) как то, что вы хотите?
источник
[[[WebView subviews] lastObject] setScrollingEnabled:NO];
источник