Iphone 在UITableView单元问题中插入图像

Iphone 在UITableView单元问题中插入图像,iphone,objective-c,uitableview,Iphone,Objective C,Uitableview,很抱歉提出这个愚蠢的问题,但我仍在学习Objective-C和iPhone编程 我试图在UITableView单元格的左侧插入一个图标。这来自方法(UITableViewCell*)tableView:(UITableView*)tableView cellforrowatinexpath:(nsindepath*)indepath: NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"icon3" ofType:@"pn

很抱歉提出这个愚蠢的问题,但我仍在学习Objective-C和iPhone编程

我试图在UITableView单元格的左侧插入一个图标。这来自方法
(UITableViewCell*)tableView:(UITableView*)tableView cellforrowatinexpath:(nsindepath*)indepath

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 heightforrowatinexpath:(nsindepath*)indepath减少单元格高度(没有效果)

我能做什么

最后,我也应该在左边插入一点空格,但这是次要的

非常感谢


[更新]当UITableView未“分组”时没有问题。

请尝试调整
单元格的大小。imageView

cell.imageView.bounds = CGRectMake(0,0,0,0) //fill in appropriate location and size for the zeros

尝试调整
单元格的大小。imageView

cell.imageView.bounds = CGRectMake(0,0,0,0) //fill in appropriate location and size for the zeros

根据来自加拿大的代码:

然后对于文本:

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];

根据来自加拿大的代码:

然后对于文本:

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];

您需要更改行的高度,以便调整cell.imageView的大小

实现以下方法并返回图像的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
还可以尝试删除cellForRowAtIndexPath方法中的contentMode设置。您可以用一行代码替换所有代码,如下所示:

cell.imageView.image = [UIImage imageNamed:@"icon3.png"];

您需要更改行的高度,以便调整cell.imageView的大小

实现以下方法并返回图像的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
还可以尝试删除cellForRowAtIndexPath方法中的contentMode设置。您可以用一行代码替换所有代码,如下所示:

cell.imageView.image = [UIImage imageNamed:@"icon3.png"];


这有两个缺点:它设计我的图像20x20(好的,我想我们可以改变它),但单元格中的文本被图标覆盖。对于文本,你也必须画一个框架。我不知道如何做:你能发布一个链接到资源进行研究吗?检查我的更新代码。必须使用x的值进行调整。UIImage*cellBack=[UIImage imageNamed:@“cell-1.png]”;cell.backgroundView=[[UIImageView alloc]initWithImage:cellBack]autorelease];这有两个缺点:它设计我的图像20x20(好的,我想我们可以改变它),但单元格中的文本被图标覆盖。对于文本,你也必须画一个框架。我不知道如何做:你能发布一个链接到资源进行研究吗?检查我的更新代码。必须使用x的值进行调整。UIImage*cellBack=[UIImage imageNamed:@“cell-1.png]”;cell.backgroundView=[[UIImageView alloc]initWithImage:cellBack]autorelease];嗯…,你能告诉我更多吗?
cell.imageView.bounds=CGRectMake(0,0,0,0)
(为零填充适当的位置和大小)。我尝试过,但它总是在上面显示一点空间(1像素):我尝试为y使用负数,但没有效果。嗯。。。,你能告诉我更多吗?
cell.imageView.bounds=CGRectMake(0,0,0,0)
(为零填充适当的位置和大小)。我尝试过,但上面总是显示一点空间(1像素):我尝试为y使用负数,但没有效果。没有,我在发布之前尝试过这个解决方案,但没有效果。我在应用程序中使用了代码,效果很好。我不使用任何特殊的东西,只使用一个简单的默认样式单元格。我的图像是72px高,返回行高80,要设置我的单元格,我设置文本,设置imageView.image属性,仅此而已,没有其他内容。你有它在应用程序中显示的屏幕截图吗?你用的是细胞分离系吗?是分组表还是标准平板表?分组表样式默认为“单线蚀刻”分隔器样式。这就是为什么你会看到白线,因为分隔符有一个白色的高光来模拟蚀刻的外观。试着将分隔符改为“单线”,这样可以消除你的空白。哦,哇,谢谢,这很有效。如果你有时间的话,一个快速的问题是:有没有办法去掉分离器的一部分?我的目标是显示一条连续的线,就像这篇文章中的图像一样:(也许我应该在子视图中添加图像,使用Syed的解决方案)…不,我在发布之前尝试了这个解决方案,但它不起作用。我在我的应用程序中使用了代码,效果很好。我不使用任何特殊的东西,只使用一个简单的默认样式单元格。我的图像是72px高,返回行高80,要设置我的单元格,我设置文本,设置imageView.image属性,仅此而已,没有其他内容。你有它在应用程序中显示的屏幕截图吗?你用的是细胞分离系吗?是分组表还是标准平板表?分组表样式默认为“单线蚀刻”分隔器样式。这就是为什么你会看到白线,因为分隔符有一个白色的高光来模拟蚀刻的外观。试着将分隔符改为“单线”,这样可以消除你的空白。哦,哇,谢谢,这很有效。如果你有时间的话,一个快速的问题是:有没有办法去掉分离器的一部分?我的目标是显示一条连续的线,就像这篇文章中的图像一样:(也许我应该在子视图中添加图像,使用Syed的解决方案)。。。