我正在尝试在UITableView单元格的左侧插入一个图标。这来自方法(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"icon3" ofType:@"png"];
UIImage *icon = [UIImage imageWithContentsOfFile: imagePath];
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
cell.imageView.image = icon;
我的图标(30w x 44h)必须与单元格一样高,而此时它仍然是一个小空间(可能是1个像素)高于它和 。我试图改变图像的尺寸没有成功,我试图用(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
来减小单元格的高度(没有效果)。
我该怎么办?
最后我也应该在左边插入一点空间,但这是次要的。
非常感谢。
[UPDATE]当UITableView没有“分组”
时没问题答案 0 :(得分:3)
您需要更改要调整大小的cell.imageView行的高度。
实现以下方法并返回图像的高度。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
尝试删除cellForRowAtIndexPath方法中的contentMode设置。您可以用以下一行替换所有代码:
cell.imageView.image = [UIImage imageNamed:@"icon3.png"];
答案 1 :(得分:2)
基于CanadaDev here的代码:
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(5,5,20,20)]; // set the location and size of your imageview here.
imageView.image = [UIImage imageNamed:@"image.png"]; // set the image for the imageview
imageView.highlightedImage = [UIImage imageNamed:@"imageHighlighted.png"]; // if you need it, this will allow you to create an image used when the cell is highlighted. For example, a white copy of your image to match the white text.
[cell addSubview:imageView];
然后是文字:
UILabel *price=[[UILabel alloc]initWithFrame:CGRectMake(80,60, 180,12)];
price.text=[NSString stringWithFormat:@"price %@",temp];
price.backgroundColor=[UIColor clearColor];
[price setFont:[UIFont fontWithName:@"American Typewriter" size:12]];
[cell.contentView addSubview:price];
[price release];
答案 2 :(得分:0)
尝试调整cell.imageView
。
cell.imageView.bounds = CGRectMake(0,0,0,0) //fill in appropriate location and size for the zeros