0

私はを持っています、UITableViewそしてセルは異なったそしてランダムな高さを持っています。セルにはそれぞれボタンが含まれています。ボタンを押すと、その特定のセルの高さを取得したいと思います。どうすればこれを行うことができますか?

4

4 に答える 4

2
(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

   //Here calculate your height
   return height;

}

セルの高さを知りたいところならどこでも

最初にインデックスパスを見つける

    NSIndexPath *indexPath = [tableView indexPathForCell:cell]

次に、以下のようにそのインデックス パス上にあるセルの高さを見つけます

   CGFloat cellHeight = [self tableView:tableView heightForRowAtIndexPath:indexPath];
于 2014-02-06T11:50:46.780 に答える
0

heightForRowAtIndexPath特定のセルの高さを取得するためには使用されません。これは UITableView の DataSource メソッドであり、UITableViewCellロード時の高さを設定するために使用されます。

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 60.0;  // Set the cell height
}
于 2013-02-03T07:14:45.510 に答える
0

あなたはこのようなものを求めていると思います。

-(IBAction)buttonPressed:(id)sender {

    UIButton *myButton = (UIButton *)sender;
    NSLog(@"%0.2f", myButton.superview.frame.size.height);

}

ドキュメントから:「ビューは他のビューを埋め込み、洗練された視覚的階層を作成できます。これにより、埋め込まれているビュー(サブビューと呼ばれる)と埋め込みを行う親ビュー(スーパービューと呼ばれる)との間に親子関係が作成されます。」

さらに、ボタンを上記のメソッドに割り当てる必要があります。これは、インターフェイス ビルダーで行うことも、次のようなもので行うこともできますcellForRowAtIndexPath

UIButton *heightButton = (UIButton *)[cell viewWithTag:1];
[heightButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
于 2013-02-04T14:36:06.437 に答える