我正面临这个非常奇怪的问题,我创建了一个自定义的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;
}
答案 0 :(得分:1)
我通过在tableViewController中执行此操作来解决问题
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 返回120.0; //返回浮点数,该浮点数将用于指定行索引处的单元格行高 }
答案 1 :(得分:0)
也许它与imageView影响UITableViewCell定义的事实有关。我认为只有当你的tableView:numberOfRowsInSection:返回6时才会显示第6行。它也可能是一些愚蠢的东西,比如tableDataSource的内容;)