2011-10-24 4 views
0

私はスクロールビューを持っています.2つのUITableがあります。 テーブルに関するすべてがうまくいきます。どちらのテーブルも自分自身をスクロールする必要はありません。 私が呼び出した場合UITableがscrollViewで、UITableがreloadData呼び出しで動作していない

[self.tableOne reloadData];ボタンを押すと機能します。しかし、私はそれをUITextViewのデリゲートメソッドで呼び出すと、アクションはありません。これはスレッドの問題ですか?あるいは、この奇妙な振る舞いの原因は何か。

私は、ユーザーが各セルにUITextViewのthatsの上で押したときにテーブルセルのサイズを増やすことをお勧めします。

私は、このメソッドが呼び出さなっていることを確認するために、ここでのNSLogを追加しました。

- (void)textViewDidBeginEditing:(UITextView *)textView 
{ 
theTableCellCurrentlyBeingEdited = textView.tag; 
[self.tableOne reloadData]; 
} 

私はアクティブになっているセルに注意触れ、と私は

- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath: (NSIndexPath *) indexPath 
{ 
if (theTableCellCurrentlyBeingEdited == indexPath.row) 
{ 
    return 120; 
} 
else 
{ 
    return TABLE_CELL_HEIGHT; 
} 
} 

にこのセルの高さを調整することができます。しかしheightForRowAtIndexが呼び出されることは決してありませんので、リロードテーブルを呼び出して取得します。

私はtableOnesデータソースとデリゲートをselfに設定しました。 私の.hで追加しました

<UITextViewDelegate, UITableViewDelegate, UITableViewDataSource> 

ここでコールが届いています。

何が間違っているかについて私にいくつかアドバイスを与えることができますか?

多くのおかげで、すべての -code

答えて

0

まず。 textViewのテキストはどこで呼び出されますか? あなたは使用していますtheTableCellCurrentlyBeingEdited = textView.tag; このタグでは、入力したテキストは表示されません。セルのビジュアルに変化させないセルのタグを変更するだけです。

秒。なぜ呼び出さない:

- (void)textViewDidChange:(UITextView *)textView 

または

- (void)textViewDidEndEditing:(UITextView *)textView 

を最初のデリゲートメソッドでは、あなたのセルは、すべてはあなたが書くと第二に、ユーザーがTextViewの中で書いて行われていることを確認しているchar型に更新されるようにするには?

+0

こんにちはトトゥムス、これはポイントから外れています。私の懸念は、ユーザーがUITextViewで編集を開始したときにテーブルをリロードすることです。テーブルセルのサイズを変更したいのは、入力中にTextView全体を見ることができるようにするためです。テキストを処理するためのコードはこの問題には関係しないため、簡潔かつ分かりやすくするために、私はそれを含めなかった。しかし、助けてくれてありがとう - コード –

+0

いいえ、このタグは、セルのインデックスを含んでいますか?ボタンを押すとすぐに機能しますか? - (BOOL)textViewShouldBeginEditing:(UITextView *)textViewメソッドに同じコードを記述するとどうなりますか教えてください。このメソッドは、実際の編集の前に呼び出されます。 結果を投稿してください。 –

+0

Totomusは、コードをtextViewShouldBeginEditingに入れると、reloadDataメソッドが実行されます。アドバイスをありがとうございます。 –

関連する問題