自定义UITableViewCell图像不会出现在第一行中

时间:2010-10-31 20:01:58

标签: uitableview uiimageview

我正面临这个非常奇怪的问题,我创建了一个自定义的UITableViewCell,左边有一个UIImageView,右边有两个UILabel。

当我运行程序时,我看到所有图像和标签出现在桌面上。

我总共需要显示5行

唯一的问题是图像从第2行开始显示并向上到第6行,标签从第1行显示到第5行。

自定义UITableViewCell .h文件

@interface ProductViewCell : UITableViewCell {
 IBOutlet UILabel *titleLabel;
 IBOutlet UILabel *detailLabel;
 IBOutlet UIImageView *imageView;
}

@property (nonatomic, retain) UILabel *titleLabel; 
@property (nonatomic, retain) UILabel *detailLabel;
@property (nonatomic, retain) UIImageView *imageView;

使用它的UITableViewController是

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

    static NSString *CellIdentifier = @"Cell";

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

          NSArray *topLevelObjects = [[NSBundle mainBundle] 
                           loadNibNamed:@"ProductViewCell" owner:self options:nil];
  for(id currentObject in topLevelObjects){
   if([currentObject isKindOfClass:[UITableViewCell class]]){
    cell = (ProductViewCell *) currentObject;
    break;
     }
   }
   }

 NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];

 cell.titleLabel.text = [dictionary objectForKey:@"name"];
 cell.detailLabel.text = @"";
 cell.imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:
           [NSURL URLWithString: [dictionary objectForKey:@"imageUrl"]]]]; 
 return cell;


}

2 个答案:

答案 0 :(得分:1)

我通过在tableViewController中执行此操作来解决问题

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {     返回120.0; //返回浮点数,该浮点数将用于指定行索引处的单元格行高 }

答案 1 :(得分:0)

也许它与imageView影响UITableViewCell定义的事实有关。我认为只有当你的tableView:numberOfRowsInSection:返回6时才会显示第6行。它也可能是一些愚蠢的东西,比如tableDataSource的内容;)