2011-07-02 8 views
0

カスタムUITableViewCellクラスを使用してテーブルビューセルを作成しています。私は動的に行の高さを変更しています:カスタムUITableViewCellのフレームサイズを編集するには?

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return 60; 
} 

行の高さを完全に処理しています。

しかし、これはセルのフレームの高さではなく、行の高さのみを変更します。セルフレームの高さはまだ44(デフォルト)です。だから、どのように行の高さとセルフレームの両方に効果的にすることができますか?予め

おかげ..

+0

Patidar:**セルフレームの高さが60ではないことをどのように知っていますか** **? – Jhaliya

+0

私はブレークポイントを使ってアプリケーションをデバッグしていました。 tableViewCellクラスでは、セルの高さを取得するためにself.frame.size.heightを使用しました。 –

答えて

0

cellforrow

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"]; 

if (cell == nil) 
{ 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0,0,90,90) reuseIdentifier:@"MyIdentifier"] autorelease]; 
} 
return cell; 

}

ノートこのライン

 cell = [[[UITableViewCell alloc] initWithFrame:CGRectMake(0,0,90,90) reuseIdentifier:@"MyIdentifier"] autorelease]; 

CGRectMakeのセルを作成しながら(0,0,90,90 )必要に応じてこれを変更してください

+0

こんにちはお友達、ご返信ありがとうございます。しかし、これは私の場合には十分ではありません。これらはinitメソッドで静的なセルフレームを渡すようです。動的なセルの高さが必要です。行の高さと同じにする必要があります。注:私の場合、行の高さは静的ではありません。私は例えば60を使用しました。 –

0

cellForRowIndexAtPath:data sourceメソッドに1行だけ書きます。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.frame = CGRectMake(0,0,320,60); 

}