2番目のビューをプッシュするのではなく、画面よりも大きい背景画像をパンする美的/娯楽目的のために、2つのビューの機能を組み合わせようとしています。1つはルートビューで、もう1つはプッシュビューでした。 。
そのため、ルートビューには、タップすると2番目のビューを押すのではなく、右へのスクロールビューのパンを開始するボタンがあります。これは問題なく機能します。
- (IBAction)nextButton:(id)sender {
[UIView animateWithDuration:2.0 animations:^{
_scrollViewToPan.contentOffset = CGPointMake(645, 0.0);
}];
}
2番目のビューであった画面に表示されるのは、ユーザーが情報を入力することです。これはすべて、1つのビューに結合しようとする前に、2番目のプッシュビューとして機能しました。これらが組み合わされたので、キーボードをキーボードに合わせるために移動すると、スクロールビューアニメーションに不具合が発生します。(以下を参照)-キーボードの上の位置にスクロールする前に、元の座標にジャンプします。
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(645, 0.0, kbSize.height, 0.0);
_scrollViewToPan.contentInset = contentInsets;
_scrollViewToPan.scrollIndicatorInsets = contentInsets;
CGRect aRect = self.view.frame;
aRect.size.height -= kbSize.height;
if (activeField == _nameTextView){
CGPoint scrollPoint = CGPointMake (645, 160);
[_scrollViewToPan setContentOffset:scrollPoint animated:YES];
}
if (activeField == _addressTextView){
CGPoint scrollPoint = CGPointMake (645, 160);
[_scrollViewToPan setContentOffset:scrollPoint animated:YES];
}
KeyboardWillBeHidden:
[UIView animateWithDuration:0.3 animations:^{
_scrollViewToPan.contentOffset = CGPointMake(645, 0.0);
}];
これが別のビューであった場合、scrollPointは(0,160)であり、すべて正常に機能しました。上記のパンからの最初のオフセットに合わせるために、これを(645、160)に変更しました。ただし、ユーザーがtextViewをタップすると、キーボードの外観と連動してスムーズに上にスクロールするのではなく、元の事前にパンされた座標にジャンプし、右および上にスクロールして、最終的に正しい場所で終了します。
一言で言えば、私が欲しいのは元の座標A->(タップボタン)->座標Bにスクロール-> textView/keyboardshowsをタップ->座標Cにスクロール->キーボードを閉じた->スクロールして座標B。
私が得るのは元の座標A->(タップボタン)->座標Bにスクロール-> textView /キーボードショーをタップ->(AにジャンプしてからCにスクロール)->キーボードを閉じた->スクロールBを調整します。
'jump-to-A'グリッチを取り除くにはどうすればよいですか?