使用UITableViewCells的背景图像(分组样式) - 角不圆

时间:2011-04-05 15:39:31

标签: iphone objective-c ios uitableview interface-builder

我正在尝试创建一个分组样式的tableview,其中包含带有背景图像的单元格。 tableview和单元格都已在Interface Builder中设置。

一切正常,但单元格不会剪切背景图像角落,使单元格保持正方形。我试图启用“剪辑子视图”,我尝试添加UIImageView作为子视图(而不是使背景视图成为一个imageview),我都尝试直接选择背景图像或将单独的UIImageView连接到cell的backroundView Outlet - 无济于事。

我也试过以编程方式设置单元格 - 不起作用。似乎唯一能让角落四舍五入的是直接在Interface Builder中选择背景颜色(而不是图像),这不是我想要的。

关于SO的其他问题还有相关问题,但其中没有一个涉及背景图像的使用,所以没有帮助。

非常感谢任何见解..!

2 个答案:

答案 0 :(得分:7)

您是否尝试过_table.backgroundColor = [UIColor clearColor];

FIXED:_cell.backgroundColor = [UIColor colorWithPatternImage:image];

答案 1 :(得分:2)

以上对我不起作用。

首先将窗口背景设置为您在应用委托中所需的颜色,如下所示:

UIView *bgView = [[UIView alloc] initWithFrame:self.window.frame];
bgView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_background.png"]];
[self.window addSubview:bgView];
[bgView release];

现在,如果您只有一个视图控制器,只需将其背景设置为清除并完成。我不得不接下来的步骤,因为我正在弹出一个带有表格视图的模态窗口,如果该视图的背景清晰,它看起来很不稳定。所以下面的代码修复了波涛汹涌的视图,我仍然得到圆角,因为在视图出现后我将背景设置为再次清除,让窗口中的背景显示出来。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"main_background.png"]];
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    self.view.backgroundColor = [UIColor clearColor];
    [self.tableView reloadData];
}