2009-07-19 13 views
1

ちょっと、私たちに(明らかに)多くのUITableViewCellを持つUITableViewがあります。ユーザーがセルに触れると、セルが大きくなり、より多くの情報を表示できるように、アクションを実装する必要があります。ユーザーがセルに再度触れると、元のサイズに戻されます。iphone dev:動的にサイズを変更するUITableView

我々は、このようなセルのフレームの高さは変化させることにより、これを実装することができた:

CGRect newFrameTemp = self.frame; 
newFrameTemp.size.height +=textHeight; 
self.frame = newFrameTemp; 

を、また他のすべてのセルをtextHeight画素を下降。

これは、「タッチ」イベントがセルと一緒に動かなかったため、次のセルに触れたいと思っていました。私たちがちょうど開かれたセルの真中

私たちは間違っているのか?

答えて

1

おそらくUITableViewDelegate方法を使用して高さを調整してみてください:

– tableView:heightForRowAtIndexPath: 

http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate

これはあなたのために適切にヒット領域を調整することができます。

編集:私はちょうど関連する可能性があります。このリンクを経由して走っ: http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

+0

ねえベン、我々は実際にそれを試してみて、それが動作しませんでしたでしたが、我々は再びしようとします。.. –

+0

ねえ、まあ、ありません。動いていない。 heightForRowAtIndexPathは、テーブルの作成時にのみ呼び出されます。私たちがやっていることは、ユーザーが触れると、セルの高さを動的に変更することです。 –

+1

確かにtableView:heightForRowAtIndexPath:は、テーブルビューを再読み込みすると呼び出されますか?そのメソッドの高さを調整し、おそらく[tableView reloadData]を呼び出しますか? –

関連する問題