私はショッピングカートを持つiPhoneアプリを開発していますが、カートを表示するのにUITableViewを使用しています。各項目にはセルがあり、-tableFooterView
にはカスタムビューが設定されています。このビューでは、クレジットカードのCVVを確認するためのテキストフィールドと、チェックアウトプロセスを完了するボタンが表示されます。テーブルフッタービューのUIButtonが、キーボードが表示されているときのタッチに応答しません
ユーザーがCVVテキストフィールドをタップすると、キーボードが何もカバーしないようにテーブルビューのサイズを変更します。
- (void)keyboardWillShow:(NSNotification *)n
{
// I'll update this to animate and scroll the view once everything works
self.theTableView.frameHeight = self.view.frameHeight - KEYBOARD_HEIGHT_PORTRAIT_IPHONE;
}
そのCVVを入力した後、ユーザーはキーボードを閉じDoneボタンをタップすることができます。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return NO;
}
そのすべての作品は、しかし、キーボードが表示されている間、私のチェックアウトボタン(ノーマルUIButton)はタッチイベントに応答しません。テーブルはスクロールしますが、ボタンのtouchUpInsideイベントは発生しません。
[完了]をタップしてキーボードを閉じると、チェックアウトボタンがtouchUpInsideイベントを認識します。
私が見たことから、キーボードが覆っていたボタンは、キーボードが外されるまで、キーボードの後ろからスクロールしても反応しないようです。この同じ-tableFooterView内の、キーボードによって覆われていないボタンは、キーボードが見えている間は、タッチに反応したままである。
のiOS 5とiOS 4に
を実行すると、誰もが起こっていることができるものの任意の提案を提供できるのと同じ行動?トラブルシューティングに役立つアイデアはありますか?
ありがとうございます!
編集 - 実際に
を更新し、キーボードで覆われているtableFooterViewの部分は、タッチイベントに応答していません。私のカスタムUIViewサブクラスでは、-touchesBegan:withEvent:
を実装し、タッチが発生したことだけを記録します。
キーボードが表示される前に、ビューのどこに触れてもログステートメントが得られます。ただし、テーブルビューのサイズを変更すると、ビューの上部に触れるだけでログステートメントが生成されます。
また、キーボードで覆われていたtableFooterViewの部分が、表示されるようにその部分をスクロールすると、そのビューの背景色の色に変わります。
これにはいくつか修正がありますか? – rishi
@rishi修正を見つけましたか? :) – vburojevic
@vburojevicはい、解決策は少し奇妙でした:)私は答えとして投稿します – rishi