2012-02-07 13 views
0

私は2種類の行を持つ必要があります。私が追加する必要があるため(NSIndexPath *)indexPath:(のUITableView *)のtableView cellForRowAtIndexPath: - (UITableViewCellの*)のtableViewIOS TableView行の高さ

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (indexPath.section == 0) 
     return 90.0; 
    else 
     return 44.0; 
} 

私が呼ばれたときに問題がある:44高さpxと90PXと他の一つの90pxの高さのscrollViewを持つセルですが、上のセルの中央に追加されています。

if (indexPath.section == 0) { 
     cell = [tableView dequeueReusableCellWithIdentifier:ScrolledCellIdentifier]; 
     if (cell == nil) 
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ScrolledCellIdentifier]; 
     //cell.textLabel.text = @"hi"; 

     [cell addSubview:self.scrollView]; 
    } 

セルのtextLabelを設定しようとすると、問題はscrollViewを追加することです。

私は、コードに次の行を追加する場合:

self.scrollView.frame = CGRectMake(0,-45, 320, 90); 

それは完璧に動作しますが、それは私のためにいくつかの奇妙な音が鳴ります。何が起こっている?

+0

ちょうど明確にする - なぜあなたはscrollViewのフレームを調整する必要がありますか? – theTRON

+0

フレームを調整しないと、高さ44 pxありがとう! – xger86x

答えて

0

私はこのコードを使用して私の問題を解決しました:

cell = [tableView dequeueReusableCellWithIdentifier:ScrolledCellIdentifier]; 
if (cell == nil) 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ScrolledCellIdentifier]; 
cell.frame = CGRectMake(0, 0, 320, 90); 
self.scrollView.frame = CGRectMake(0,0, 320, 90); 
[cell addSubview:self.scrollView]; 

それは間違っているのですが、それが動作するかどうか私は知らない...

0

追加する前に、スクロールビューのフレームをセルの境界に設定します。

ので

self.scrollView.frame = cell.bounds; 
[cell addSubview:self.scrollView]; 

デバッグ...のNSLog ....出力あなたがそれらを配置する場所とは対照的に、それらが配置されているものばかりのフレームあなたが見ることができるようにします。私は

#define LogCGRect(rect) NSLog(@"CGRect:%@", NSStringFromCGRect(rect)); 

すべての時間、これを使用して、あなただけの

LogCGRect(self.scrollview.frame); 
0

を行うことができますそれはちょうどフィットし、

NSLog(@"Frame is: ", NSStringFromCGRect(self.scrollView.frame)); 

や素敵なショートカットを定義します。座標フレームを出力するためにこれを使用しますそれは高さが44または90であるかどうかにかかわらず、tableviewcellにscrollview。

関連する問題