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

Posted

技术标签:

【中文标题】为 UITableViewCells 使用背景图像(分组样式) - 不圆角【英文标题】:Using background images for UITableViewCells (grouped style) - corners not rounded 【发布时间】:2011-04-05 15:39:30 【问题描述】:

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

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

我也尝试过以编程方式设置单元格 - 不起作用。似乎唯一可以使角变圆的方法是直接在 Interface Builder 中选择背景颜色(不是图像),这不是我想要的。

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

非常感谢您的任何见解..!

【问题讨论】:

【参考方案1】:

你试过_table.backgroundColor = [UIColor clearColor];吗?

修复:_cell.backgroundColor = [UIColor colorWithPatternImage:image];

【讨论】:

怎么样 _cell.backgroundColor = [UIColor colorWithPatternImage:image]; !!工作!谢谢老兄,在白白浪费了 32479 小时之后,你拯救了我的一天!!请在您的答案中包含解决方案,以便其他有相同问题的人更容易找到!再次感谢!! 需要注意的一点 - 图像不会被拉伸。因此,在将图像应用为背景图案之前,请尝试将其调整为单元格的高度。【参考方案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];

【讨论】:

以上是关于为 UITableViewCells 使用背景图像(分组样式) - 不圆角的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 begin-endUpdates() 和多个自定义单元格展开/折叠 UITableViewCells?

在 UITableViewCells 中显示之前调整图像大小和裁剪图像

如何在 UITableViewCells 之间添加边距而不被黑客攻击

开关打开时更改 UITableViewCells 的背景颜色 - Swift

在我的 Swift 应用程序中使用 AlamofireImages 在 UITableViewCells 上缓存图像

从 NSDocumentDirectory 延迟加载 UITableViewCells 的图像?