Saya harus menunjukkan artikel web dengan artikel di UITableView
bawah.
Satu-satunya pilihan yang saya temukan adalah menampilkan artikel di UIWebView
dalam header tableView.
Untuk melakukan itu saya harus mendapatkan ketinggian konten webView dan saya harus menonaktifkan scrolling untuk webView.
Saya menemukan dua solusi untuk menonaktifkan pengguliran:
for (id subview in webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).scrollEnabled=NO;
atau di JavaScript:
<script type="text/javascript">
touchMove = function(event) {
event.preventDefault();
}
Saya mendengar bahwa solusi pertama dilarang oleh Apple tetapi saya tidak memiliki buktinya. Akankah aplikasi saya ditolak dengan menggunakan solusi ini? Jika ya, dapatkah saya menggunakan solusi kedua tanpa ditolak?
webView.scrollView.bounces = NO;
? karena kode di baris pertama telah menonaktifkan pengguliran.Karena pertanyaan ini masih berlaku, ada cara baru untuk melakukannya! (iOS 7.0+, mungkin iOS 6 juga, tidak dikonfirmasi)
webView.scrollView.scrollEnabled = NO;
Hati hati :)
sumber
Anda cukup menyetel properti interaksi pengguna tampilan web ke no yaitu
webView.userInteractionEnabled = NO;
Ini cukup sederhana dan berfungsi dengan baik, terima kasih :)
sumber
untuk semua versi ios Anda dapat menggunakan kode ini sebagai ganti setScrollEnabled:
for (UIView *view in webview.subviews) { if ([view isKindOfClass:[UIScrollView class]]) { UIScrollView *scrollView = (UIScrollView *)view; scrollView.scrollEnabled = NO; } }
sumber
Gunakan yang ini
<body ontouchmove="event.preventDefault()">
sumber
Versi SWIFT 3
webView.scrollView.bounces = false webView.scrollView.isScrollEnabled = false
sumber
Saya pikir Javascript
<script type="text/javascript"> touchMove = function(event) { event.preventDefault(); }
sejauh ini merupakan solusi terbaik.
Memang :
Contoh pertama Anda, atau
[[[WebView subviews] lastObject] setScrollingEnabled:NO];
satu (hal yang sama) dapat ditolak karena tidak didokumentasikan, atau membuat aplikasi Anda mogok dalam pembaruan iOS lebih lanjut.
Dan
[[myWebView scrollView] setBounces:NO];
metode tidak akan bekerja dengan iOS <5.
sumber
[[[WebView subviews] lastObject] setScrollingEnabled:NO];
yang menyortirnya untuk saya
sumber
Yang pertama ditolak oleh Apple. Itu terjadi pada saya pagi ini.
sumber
[[myWebView scrollView] setBounces: NO];
sumber
Menurut saya opsi pertama tidak dilarang oleh Apple.
Kamu bisa mencoba
[[[Webview subviews] lastObject] setScrollingEnabled:NO];
Jika Anda tidak ingin tautan apa pun berfungsi di UIWebView, Anda juga bisa melakukannya
[myWebView setUserInteractionEnabled:NO];
sumber
Gunakan :
[[webView scrollView] setBounces:NO]; [[webView scrollView] setScrollingEnabled:NO];
sumber
Coba ini,
[(UIScrollView *)[[webView subviews] lastObject] setScrollEnabled:NO];
sumber
Saya menempatkan beberapa
UIWebView
di dalam aUIScrollView
dan itu tidak menggulir untuk saya, kecuali saya menonaktifkan interaksi pengguna di tampilan web (bahkan dengan[[webview scrollview] setScrollEnabled:NO]
). Jadi saya menempatkanUIWebView
s di dalam aUIView
dan itu berhasil untuk saya tetapi kemudian tautan interaktif atau div di HTML saya di dalamUIWebView
tidak berfungsi lagi.Satu-satunya hal yang berhasil bagi saya adalah mempertahankan bagian
UIWebView
dalamUIScrollView
sehingga interaksi HTML berfungsi tetapiUIScrolling
tidak.Saya kemudian membuat delegasi khusus untuk tampilan web untuk mendengarkan
window.open("http:/customEvent")
yang dipanggil dari HTML yang terdapat dalam tampilan web. Saya juga menambahkan deteksi gesekan JavaScript yang akan menjalankan acara khusus saya.Ketika delegasi tampilan web menerima ini, saya meneruskan pemberitahuan ke pengontrol yang kemudian secara dinamis menggulir my
UIScrollView
. Jelas saya harus membangun logika untuk memantau dan menggulir ke halaman berikutnya atau sebelumnya. Bukan solusi tercantik tapi ini berhasil untuk saya.sumber
Coba ini di HTML (
<HEAD>
tag) Anda<script> document.ontouchmove = function(event) { event.preventDefault(); } </script>
Ini akan menonaktifkan pengguliran di halaman web Anda.
(berfungsi di halaman web apa pun, tidak hanya UIWebView)
sumber
Saya perlu menonaktifkan scrolling karena menutup keyboard kustom benar-benar mengacaukan scrolling dengan webView. Tidak ada yang berhasil dan saya menggunakan sesuatu seperti ini:
-(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; } }
sumber
Apakah UIWebview dan UITableView pada UIScrollview, dan pengaturan ketinggian webview (dan menambahkan total ContentSize dari Scrollview) seperti yang Anda inginkan?
sumber
[[[WebView subviews] lastObject] setScrollingEnabled:NO];
sumber