2012-03-05 18 views
2

私は3つのセルだけでカスタムテーブルを持っています。 3番目のセルには、私はtextViewを持っています。 3つのセルは、キーボードスペースだけが残るように画面上に十分なスペースをカバーします。私は動くものやスクロール可能なものは望んでいないので、私はself.tableView.scrollEnabled = NO;を使った。UITextViewをスクロールするためにUITextViewを停止する方法

これは、以前のバージョンのiOSで問題なく動作しています。しかし、iOS 5では奇妙な動作が見られます。 textViewに複数行のテキストを入力すると、テーブル全体がスクロールアップします。理想的には、テーブルはそこにくっつき、textViewだけがスクロールします。

多くのことを試した後、textViewはキーボードの近くに配置されています(textViewは最後のセルに配置され、キーボードのすぐ下にあります)、iOSがtextViewを移動しようとします完全なテーブルを上にスクロールします。 tableViewのこの自動スクロールを停止する方法はありますか?

ここに記載された同じ問題が見つかりました Disable UITextView scrolling the containing view? しかし、まだ回答がありません。そして、そこに記載されている回避策は、自分自身を含むビュー自体がスクロール可能なので、私のためには機能しません。UITableView

+0

のようなテーブルビューにスクロールして回避しますか?同じ問題を抱えている –

+0

@SteveBaughman:正確ではありません。私は回避策をとった。 'UITextView'が上にシフトされていたためにキーボードに近すぎました。この問題を解決するために、 'UITextView'とキーボードとの距離を伸ばしました。私はまだこの問題の適切な解決策を探しています。 – Sam

答えて

0

完全に新しいサブビューを追加する方法があります。 UITextViewself.viewに追加し、画面上の同じ位置に対応するフレームを与えます。テーブルビューは今はスクロールしないでください。場合

これはself.viewは、テーブルビューであるため、クラスUIViewControllerにあなたのコントローラを変更すると(つまり、あなたが@interface宣言でそれらを言及する必要があり)デリゲートとデータソースのメソッドを自分で実装し動作しません。テーブルビューは、self.viewのサブビューでなければならず、IB経由で接続する必要があります。

キーボードを閉じる前に、元のテキストビューにコンテンツをコピーします。私にとって

+0

私はサブビューをプログラム上でself.viewに追加していますが、動作しません。 メインビューを 'UITableViewController'から' UIViewController'に変更することは、私が探している解決策ではありません。この問題はiOS 5から始まったので、自動スクロールを止めるために設定できるプロパティやメソッドが必要であると確信しています。 – Sam

3

、私はあなたがこれに対する解決策を見つけるこの

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if(self.tableView.contentOffset.y != 0) 
    { 
     self.tableView.contentOffset = CGPointMake(0, 0); 
    } 
} 
関連する問題