2013-03-04 132 views
0
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    // Return the number of rows in the section. 


    NSLog(@"[listArr count]=%d",[listArr count]); 
    return [listArr count]; 



} 

// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    PostCount *post=[listArr objectAtIndex:indexPath.row]; 


//  NSString *CellIdentifier = [NSString stringWithFormat: @"Cell_%d_%@",indexPath.row,post.foreignId]; 
//  
// UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
// if (cell == nil) { 
//  cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
//   
//  NSLog(@"indexPath.row++++++++=%d",indexPath.row); 
//   
//   
//  
// }else{ 
////  [[cell.contentView viewWithTag:indexPath.row+1000] removeFromSuperview]; 
//  TimeLineGraphicView *gview=(TimeLineGraphicView *)[cell viewWithTag:indexPath.row+1000]; 
//   [gview removeFromSuperview]; 
//  gview=nil; 
// } 
// 
//  
//  
// TimeLineGraphicView *gview=[[TimeLineGraphicView alloc]init]; 
// gview.tag=indexPath.row+1000; 
// gview.delegate=self; 
// 
// [cell.contentView addSubview:gview]; 
//  
// int Allheight =[ModelClass returnGraphicViewHeight_timeLine:post]; 
// gview.frame=CGRectMake(0, 0, 320, Allheight); 
// [gview setViewStyle:post]; 
//  
// 
// gview.lab_time.text=[ModelClass intervalSinceNow:post.when btime:0]; 
//  
// post=nil; 
//  
// return cell; 

    static NSString *CellIdentifier = @"TimeLineGraphicViewCell"; 

    TimeLineGraphicViewCell *cell = (TimeLineGraphicViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if(cell==nil){ 

     cell = [[TimeLineGraphicViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ; 

    } 


//  
// int Allheight =[ModelClass returnGraphicViewHeight_timeLine:post]; 
// cell.frame=CGRectMake(0, 0, 320, Allheight); 


    //时间 
    if (cell.btime==1) { 
     cell.lab_time.text=[ModelClass intervalSinceNow:post.when btime:1 ]; 
    }else{ 
     cell.lab_time.text=[ModelClass intervalSinceNow:post.when btime:0]; 
    } 


    cell.imageView_t.hidden=NO; 
    // imageView_t.isRoundIcon=YES; 
    if(![GlobalVariable isBlankString:post.who.avatarbig]) 
    { 

     [cell.imageView_t setImageWithURL:[NSURL URLWithString:post.who.avatarbig] 
        placeholderImage:[UIImage imageNamed:@"default_user.png"]]; 

    } 
    else{ 
     cell.imageView_t.image=[UIImage imageNamed:@"default_user.png"]; 
    } 


    cell.imageIcon.image=[UIImage imageNamed:[ModelClass returnimage_source:post.source]]; 
    cell.whoscreenName.text=post.who.screenName; 


    CGSize size_myWhat =[ModelClass heightForTextView:[UIFont systemFontOfSize:15] WithText:post.what weith:250]; 


    cell.myWhat.frame=CGRectMake(50, 25, 250, size_myWhat.height); 
    cell.myWhat.text=[NSString stringWithFormat:@"%@",post.what]; 
    cell.myWhaticon.frame=cell.myWhat.frame; 


    if(![GlobalVariable isBlankString:post.img_small]) 
    { 

     CGSize size_myImageView=CGSizeMake(80, 80); 

     cell.myImageView.frame=CGRectMake(50, 30+size_myWhat.height, size_myImageView.width, 80); 
     cell.myImageView.hidden=NO; 


     [cell.myImageView setImageWithURL:[NSURL URLWithString:post.img_small] 
        placeholderImage:[UIImage imageNamed:@"default_user.png"]]; 


     UIButton * myImageBtn=[[UIButton alloc]init]; 
     myImageBtn.frame= CGRectMake(50, 30+size_myWhat.height, size_myImageView.width, 80); 
     [myImageBtn addTarget:self action:@selector(my_imag_btnClick:) forControlEvents:UIControlEventTouchUpInside]; 
//  myImageBtn.tag=self.tag-1000; 
     [cell addSubview:myImageBtn ]; 


    } 

    if ([post.sourceTweet.what length]>0) { 
     cell.whoWhat.text=[NSString stringWithFormat:@"@%@: %@",post.sourceTweet.who.screenName,post.sourceTweet.what]; 

    } 

    CGSize size_whoWhat =[ModelClass heightForTextView:[UIFont systemFontOfSize:14] WithText:cell.whoWhat.text weith:250]; 

    cell.whoWhat.frame=CGRectMake(10, 10, 250, size_whoWhat.height); 

    if(![GlobalVariable isBlankString:post.sourceTweet.img_small]) 
    { 



     CGSize size_whoImageView=CGSizeMake(80, 80); 
     cell.whoImageView.frame=CGRectMake(30, 15+size_whoWhat.height, size_whoImageView.width, 80); 
     cell.whoImageView.hidden=NO; 
     [cell.whoImageView setImageWithURL:[NSURL URLWithString:post.sourceTweet.img_small] 
        placeholderImage:[UIImage imageNamed:nil]]; 


     UIButton * whoImageBtn=[[UIButton alloc]init]; 
     int myimageHeight=0; 
     if (cell.myImageView.frame.size.height>0) { 
      myimageHeight=5+80; 
     } 
     whoImageBtn.frame=CGRectMake(30+42, 40+size_myWhat.height+size_whoWhat.height+myimageHeight, 80, 80); 
     whoImageBtn.backgroundColor=[UIColor clearColor]; 
     [whoImageBtn addTarget:self action:@selector(who_imag_btnClick:) forControlEvents:UIControlEventTouchUpInside]; 
//  whoImageBtn.tag=self.tag-1000; 
     [cell addSubview:whoImageBtn ]; 
    } 



    if (size_whoWhat.height<20) { 
     cell.whoBgView.hidden=YES; 
    }else{ 

     int myimageHeight=0; 
     if (cell.myImageView.frame.size.height>0) { 
      myimageHeight=5+80; 
     } 

     cell.whoBgView.frame=CGRectMake(42, 25+size_myWhat.height+myimageHeight, 270, 20+size_whoWhat.height+cell.whoImageView.frame.size.height); 

    } 


    return cell; 

} 

和我TimeLineGraphicViewCell同一视图在细胞大小不同,如何再利用细胞

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 

     imageView_t=[[UIImageView alloc]initWithFrame:CGRectMake(5, 5, 40, 40)]; 
     imageView_t.hidden=YES; 


     imageView_t.layer.cornerRadius = 5; 
     imageView_t.layer.masksToBounds = YES; 
     //给图层添加一个有色边框 
     imageView_t.layer.borderWidth = 0.8; 
     imageView_t.layer.borderColor = [[UIColor colorWithRed:230.0/255 green:230.0/255 blue:230.0/255 alpha:1.0] CGColor]; 

     [self addSubview:imageView_t]; 


     imageIcon=[[UIImageView alloc]initWithFrame:CGRectMake(295, 5, 16, 16)]; 
     [self addSubview:imageIcon]; 



     self.lab_time = [[UILabel alloc] initWithFrame:CGRectMake(210, 5, 80, 20)]; 
     self.lab_time.textColor=[UIColor grayColor]; 
     self.lab_time.font=[UIFont systemFontOfSize:12]; 
     self.lab_time.textAlignment=UITextAlignmentRight; 
     self.lab_time.backgroundColor=[UIColor clearColor]; 
     [self addSubview: self.lab_time]; 


     whoscreenName = [[UILabel alloc] initWithFrame:CGRectMake(60, 5, 145, 20)]; 
     whoscreenName.textColor=[UIColor blackColor]; 
     whoscreenName.font=[UIFont systemFontOfSize:18]; 
     whoscreenName.lineBreakMode = UILineBreakModeTailTruncation; 
     whoscreenName.numberOfLines = 0; 
     whoscreenName.backgroundColor=[UIColor clearColor]; 
     [self addSubview:whoscreenName]; 


     myWhat = [[UITextView alloc] init]; 
     myWhat.textColor=[UIColor blackColor]; 

     myWhat.backgroundColor=[UIColor clearColor]; 
     [myWhat setScrollEnabled:NO]; 
     [myWhat setEditable:NO]; 
     myWhat.dataDetectorTypes=UIDataDetectorTypeLink; 
     [myWhat setCanCancelContentTouches:NO]; 
     [self addSubview:myWhat]; 

     myWhaticon=[[UIView alloc]init]; 
     [self addSubview:myWhaticon]; 


     myImageView=[[UIImageView alloc]init]; 
     myImageView.hidden=YES; 
//   myImageView.compressed_img=1; 
     [self addSubview:myImageView]; 




     whoBgView=[[UIImageView alloc]init]; 
     //  [whoBgView setImage:[[UIImage imageNamed:@"popup.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:30]]; 
     whoBgView.image = [[UIImage imageNamed:@"timeline_rt_border_t.png"] stretchableImageWithLeftCapWidth:130 topCapHeight:7]; 

     [self addSubview:whoBgView]; 


     whoWhat = [[UITextView alloc] init]; 
     whoWhat.textColor=[UIColor blackColor]; 

     whoWhat.backgroundColor=[UIColor clearColor]; 
     [whoWhat setScrollEnabled:NO]; 
     [whoWhat setEditable:NO]; 

     whoWhat.dataDetectorTypes=UIDataDetectorTypeLink;//url 
     [whoWhat setCanCancelContentTouches:NO]; 
     [whoBgView addSubview:whoWhat]; 


     whoImageView=[[UIImageView alloc]init]; 
     whoImageView.hidden=YES; 
     //   whoImageView.backgroundColor=[UIColor yellowColor]; 
//  whoImageView.compressed_img=1; 
     [whoBgView addSubview:whoImageView]; 

     myWhat.font=[UIFont systemFontOfSize:15]; 
     whoWhat.font=[UIFont systemFontOfSize:14]; 
    } 
    return self; 
} 

一些看法,也许隐藏,以及一些视图大小可能会有所不同,我用上面的代码,但细胞是在错误的位置。

回答

0

创建方法在TimeLineGraphicViewCell计算它的高度与给定的数据。并在您的ViewController中创建临时单元格作为全局变量,并使用它在heightForRowAtIndexPath中使用它的给定数据计算每个单元格的高度。