0

2 つの UITables を持つスクロール ビューがあります。テーブルに関するすべてがうまく機能します。どちらのテーブルもスクロールする必要はありません。私が電話したら

[self.tableOne reloadData]; ボタンを押すと動作します。しかし、UITextView のデリゲート メソッドで呼び出すと、動作しません。これはスレッドの問題ですか?または、この奇妙な動作の原因は何ですか。

ユーザーが各セルにある UITextView を押したときに、TableCell のサイズを大きくしたいと考えています。

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

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

どのセルがアクティブであるかを確認し、reload table を呼び出して、このセルの高さを調整できるようにします。

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

しかし、heightForRowAtIndex が呼び出されることはありません。

tableOnes データソースとデリゲートを自分自身に設定しています。私の.hに追加しました

<UITextViewDelegate, UITableViewDelegate, UITableViewDataSource>

そのため、電話がかかってきています。

何がうまくいかないかについてアドバイスをくれる人はいますか?

どうもありがとう、 - コード

4

1 に答える 1

0

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

2番。なぜ電話しないのですか:

- (void)textViewDidChange:(UITextView *)textView

また

- (void)textViewDidEndEditing:(UITextView *)textView

最初のデリゲート メソッドでは、書き込みごとにセルが更新され、2 番目のデリゲート メソッドでは、ユーザーがテキストビューへの書き込みを完了したことを確認できますか?

于 2011-10-24T08:04:49.643 に答える