为 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