2017-06-29 13 views
1

scrollTopに基づいてサイズを変更するヘッダーを持つIonicアプリがあります。私は、画面上で私の指を維持する場合イオン2 - 指が画面から外れたときにスクロールイベントが発生しない

iOSの上で
import { Scroll } from 'ionic-angular'; 

@ViewChild(Scroll) scroll: Scroll; 

... 

ionViewDidLoad() { 
    this.scroll.addScrollEventListener((ev) => { 
     console.log('scroll'); 
    }); 
} 

は、スクロールイベントが完全に解雇されていますが、指が画面から外れている(しかし、ときスクロールがのために続けて:私はIonScrollにイオンのスクロールイベントを使用しています慣性)、イベントはスクロールが停止したときにのみ起動されます。

指が画面から外れているときにスクロールイベント(または他の同様のイベント)を聴く方法はありますか?

私は似ているようだが、どんな答えを持っていない、この質問、見つかった:私の場合は私が表示/非表示「scrollToTop」ボタンに望んでいた(数ヶ月前、私は同様の問題があったiOS scroll event not firing as often when finger is off of the screen

+0

あなたが試すことができます'touchmove'' touchstart'' touchend'イベント – Duannx

+0

私が望むのは、指が画面に触れていないとき(つまり、iOSのスクロール運動のためにコンテンツがまだスクロールしているとき)スクロールを聴くことです。私は 'touchstart '、' touchend'と 'touchmove'は、指が画面上にあるときにだけ発射されます... –

答えて

3

をリストをスクロールするときに指が画面上にあるときにはうまくいくが、動かさないとうまくいく。

結論として、UIWebViewにはスクロールに関するいくつかの制限があり、スクロール検出は参照してください:https://github.com/ionic-team/ionic/issues/10630

Ionic-Team suggこれらの問題は存在しないため、代わりにWKWebViewを使用しています。

https://github.com/ionic-team/cordova-plugin-wkwebview-engine

一つあなたが試すことができます最後の事、私はそれはあなたのケースの違いをすることはありませんかなり確信しているものの、NgZoneでコードが実行されている:

import { NgZone } from '@angular/core'; 

export class myPage { 
    zone: NgZone; 

    constructor() { 
    this.zone = new NgZone({enableLongStackTrace: false}); 

    this.content.ionScroll.subscribe(($event) => { 
     this.zone.run(() => { 
      // console.log($event); 
     }); 
    }); 
    } 
} 
+0

私はWKWebViewソリューションについて聞いたことがありませんでしたが、それだけで私の問題を解決しました。ありがとうございました! –

関連する問題