2011-10-24 178 views
0

我是iPhone應用程序的新程序員......我有7個標籤,並在表視圖中第一個單元格1周的ImageView ......多個標籤表格單元格... iphone

我寫此代碼這.....工作令人滿意...(可能需要滾動時間)

請告訴我......這是正確的方式來完成這項任務或不.... ....?

如果沒有請...告訴我..the正確的方式...

在此先感謝

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell %i",indexPath.section]]; 

if (cell == nil) { 

    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[NSString stringWithFormat:@"Cell %i",indexPath.section]] autorelease]; 

} 


if(indexPath.row==0) 
{ 


      CGRect frame=CGRectMake(120,10, 80, 40); 

      UILabel *label1=[[UILabel alloc]init]; 

      label1.frame=frame; 

    [email protected]"first label"; 

    [cell.contentView addSubview:label1]; 

      [label1 release]; 




    CGRect frame2=CGRectMake(200,10, 80, 40); 

      UILabel *label2=[[UILabel alloc]init]; 

      label2.frame=frame2; 

    [email protected]"second label"; 

    [cell.contentView addSubview:label2]; 

      [label2 release]; 


    and so on....... 


} 
    else if(indexPath.row==1) 
    { 
     //add four labels for this cell here...... 
    } 


return cell; 
} 

回答

3

當你重用細胞,你並不需要創建標籤第二次:

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[NSString stringWithFormat:@"Cell %i",indexPath.section]]; 

    if (cell == nil) { 

     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[NSString stringWithFormat:@"Cell %i",indexPath.section]] autorelease]; 

     if(indexPath.row==0) 
     { 
      CGRect frame=CGRectMake(120,10, 80, 40); 
      UILabel *label1=[[UILabel alloc]init];    
      label1.frame=frame; 
      [email protected]"first label"; 
      label1.tag = 1001; 
      [cell.contentView addSubview:label1]; 
      [label1 release]; 

      CGRect frame2=CGRectMake(200,10, 80, 40); 
      UILabel *label2=[[UILabel alloc]init]; 
      label2.frame=frame2; 
      [email protected]"second label"; 
      label2.tag = 1002; 
      [cell.contentView addSubview:label2]; 
      [label2 release]; 

      and so on....... 
     } 
    } 


    if(indexPath.row==0) 
    { 
     UILabel *label1=[cell viewWithTag:1001]; 
     [email protected]"first label"; 

     UILabel *label2=[cell viewWithTag:1002]; 
     [email protected]"second label"; 

     and so on....... 
    } 


    return cell; 
} 

我正在訪問以前創建的標籤,使用tag值。

+0

@Nekto ...感謝您的建議....我想問我在哪裏定義我的標籤...(在.h文件中)...有四個不同的標籤在我的第二個表格單元... – GauravBoss

+0

...你能否建議我這樣做的正確方法...在此先感謝 – GauravBoss

+0

我已經發布了應該解決您的問題的代碼 – Nekto

0

我想,在InterfaceBuilder中設計這樣一個複雜的單元會容易得多。如果您正在使用Storyboard,則可以在表格視圖中立即設計自定義單元格。如果您使用的是xib,您可以創建一個將具有自定義UITableViewCell而不是表視圖,UIViewController作爲所有者並在您的項目中聲明UITableViewCell的子類的nib。這應該讓你的痛苦更容易=)

相關問題