私の iOS アプリにはスライド ビュー ページャー タイプの紹介があり、最後のページには 2 つのテキスト入力があります。左から右にスワイプするスクロールビューに 7 ページが表示されているため、キーボードが表示された最後のページで contentOffset を変更してレイアウトを押し上げ、テキスト入力がキーボードの上に表示されるようにしています。ユーザーが次の入力を選択するか、ページのどこかをクリックするたびに、contentOffset がリセットされ、入力がキーボードの下に戻されます。ユーザーはクリックしてキーボードをリセットし、2 番目にクリックする必要があります。入力して情報を入力します。これは非常に直感的であり、リセットを停止する必要があります。
これを達成する方法はありますか?私は多くのことを検索しましたが、多くの人が以前に問題を抱えているのを見たにもかかわらず、それを修正する方法について明確な答えを持っている人はいません...ありがとう!
を使用したコード
func keyboardWillShow(sender: NSNotification)
{
if self.view.frame.height == 480.0
{
currentScrollViewOffset = CGPointMake(ContainerViewController.currentInstance.scrollView.contentOffset.x, ContainerViewController.currentInstance.scrollView.contentSize.height - (self.view.frame.height * 0.729))
ContainerViewController.currentInstance.scrollView.setContentOffset(currentScrollViewOffset!, animated: false)
}
}
func keyboardWillHide(sender: NSNotification) {
defaultScrollViewOffset = CGPointMake(ContainerViewController.currentInstance.scrollView.contentOffset.x, 0)
ContainerViewController.currentInstance.scrollView.setContentOffset(defaultScrollViewOffset!, animated: true)
}
ContainerViewController はコード処理であり、コントローラー内の 1 つの UIScrollView にさまざまなビューを設定して、スワイプ ページの紹介を行うことに注意してください。
ユーザーの「タッチ」をキャプチャし、オフセットが (0,0) のようにリセットされるのを防ぐ方法はありますか?