如何在编辑模式下调整UITableViewCell背景的大小

时间:2010-03-11 00:24:13

标签: ios iphone objective-c uitableview

我有一个表格视图,其中包含每个单元格的自定义图像背景。在正常模式下,背景是完美的并且填满所有细胞。当tableView进入编辑模式时,“ - ”按钮出现在左边,所有对象都缩进,左边我有背景问题:有一个白色区域。谁能帮我?背景图像足够大以填充所有单元格,但它在编辑模式下移动。我可以解决吗?非常感谢!

更新

我在UITableViewCell子类中使用了这段代码:

- (void) layoutSubviews
{

     UIImage *backgroundImage = [UIImage imageNamed:@"sfondoCella2.png"];
     UIImageView *bgView = [[UIImageView alloc] initWithFrame:self.bounds];
     bgView.image = backgroundImage;
     self.backgroundView = bgView;
     [bgView release];

}

设置背景和appranetly在正常模式下运行良好但是当你进入编辑模式时都会出错:没有出现圆形红色删除按钮,并且单元格的注释(完全与IB中设置的背景)不正确。

2 个答案:

答案 0 :(得分:2)

您可能已将图片视图添加为contentView的{​​{1}}的子视图。您需要将图片视图设置为UITableViewCell的{​​{1}}。

backgroundView不会在edditing模式下移动。

答案 1 :(得分:2)

我认为没有办法通过IB添加背景图像。相反,我假设你只是添加一个UIImage子视图。

我已经在代码中向表格单元格添加了背景图像,我没有您描述的问题。

UIImage *backgroundImage = [UIImage imageNamed:@"my-bg.png"];
UIImageView *bgView = [[UIImageView alloc] initWithFrame:self.backgroundView.frame];
bgView.image = backgroundImage;
cell.backgroundView = bgView;
[bgView release];

理想情况下,您可以在自定义UITableViewCell的layoutSubviews方法中执行此操作,然后告诉IB这是您的单元格的类。

通过扩展UITableViewCell,您可以覆盖以下方法,并且可以精确控制单元格在编辑模式下或选择时的外观。

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated
- (void)setEditing:(BOOL)editing animated:(BOOL)animated