2017-11-08 17 views
0

私はスウィフト4.0のアプリを持っています。このアプリでは、画面と同じ幅の複数の画像を含む広いスクロールビューがあります。現在、ユーザーはスワイプすることができ、完全に機能します。私はページングのためにボタンを追加する過程にある。ボタンの1つのコードは以下のとおりです(左ボタンは同じ構造です)。コンテンツオフセットスウィフトで更新されていない

ボタンを右または左にページングすると、コンテンツオフセットがまったく変更されません。例えば、#1ページ目から始めると、水平方向のコンテンツオフセットは0になります。scrollRight関数を実行すると、ページ#2を表示していてもコンテンツオフセットは0のままです( "content offset = 0"を出力します)。私が代わりにスワイプすれば、ページ#2が表示されますが、内容はUIScreen.main.bounds.widthに更新をオフセット(それは「内容のオフセット= 414」を出力します)

func scrollRight(){ 
    let currentX = sectionScroll.contentOffset.x 
    let newX = currentX + UIScreen.main.bounds.width 
    sectionScroll.setContentOffset(CGPoint(x: newX, y: 0), animated: true) 
    print("content offset= ", sectionScroll.contentOffset.x) 
} 

私が間違って何をしているのですか? UIScrollViewsの機能を理解できませんか?ボタンを使用して次のページを表示し、スクロールと同じ方法でコンテンツのオフセットを更新する方法はありますか?後のコードでコンテンツのオフセットを使用して、ユーザーが見ているページを特定するので、ユーザーがページをスワイプするかクリックするかを更新できるようにしたいと思います。

答えて

0

他の誰かが同様の問題に遭遇した場合の解決方法を見つけました。

アニメーションが「true」に設定されている場合、新しいオフセットに移動するには時間がかかります。したがって、あなたはそれを考慮する必要があります - 私はちょうど私のコードの残りの部分を実行する前に少し遅れて構築しましたが、私はそれの周りに他の方法があると確信しています。

関連する問題