gpt4 book ai didi

ios - 分组的 UITableView 的背景纹理不会随表格滚动

转载 作者:可可西里 更新时间:2023-11-01 04:03:40 24 4
gpt4 key购买 nike

我正在开发一个包含大量 UITableView 的应用程序,我正在尝试为它们提供带纹理的背景颜色。我需要使用分组样式,因为我不希望部分标题在用户滚动时 float 在文本字段上。

我遇到的问题是,当我使用分组样式时,背景纹理不会随表格滚动;当表格在其上方滚动时,背景纹理会保持原位。我觉得这有点奇怪,我宁愿让背景与表格一起滚动,就像它在 Plain 风格中所做的那样。不幸的是,因为我不能让标题 View float 在所有内容之上,所以这似乎不是一个选项。

有没有人能做到这一点?

这里是一些相关的代码:

- (void)loadView {
[super loadView];
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"texturedPattern.png"]];
// this prevents the cells from replicating the background texture
self.tableView.backgroundView = [[UIView alloc] initWithFrame:self.view.bounds];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
// disable the default grouped border since we're doing it manually with the textField
cell.backgroundView = nil;
cell.backgroundColor = [UIColor clearColor];
}

我的表格 View 目前看起来像这样: Just to give you an idea...

更新

正如 Amit Vyawahare 所建议的,我尝试将背景纹理应用于标题和每个单元格的背景。有两个问题在您实际看到时会更加明显,但我会尽力而为。

  • 首先,背景总是可见的。 我已经从表格中删除了背景颜色以使其更加明显:

Scrolling areas vs. non-scrolling areas

在任何你看到黑色的地方,tableView 的背景纹理都是可见的,并且它不会随 tableView 滚动。 Grouped tableView 样式在每个单元格的任一侧插入 5 像素边框,并且无法更改。此外,员工 ID 部分下方没有页脚,我什至实现了 -tableView:heightForFooterInSection: 以返回 0.0,但那里仍然存在空白。

  • 其次,即使我能够消除这些间隙,纹理也不会对齐。同样,这很难看清,所以我上传了一张视网膜屏幕截图,让它更容易看清:

if you squint, you'll see a totally rad 3d image!

这在密码部分上方最为明显,您可以看到纹理没有正确对齐,看起来有点像纸上的“折叠”。我想,如果那是客户想要的,那会很酷。它是可见的,但在第二个屏幕截图的几乎每个边缘上都不那么明显。这是因为纹理实际上非常大:200x200 (400x400@2x),并且颜色会有细微的变化,除非发生这种错位。

最佳答案

首先将 UITableViewController 替换为 UIViewController 并向其添加 UITableView。将 autoresizingMask 设置为灵活的宽度/高度。现在您拥有了与 UITableViewController 等效的东西,但可以更好地控制 View 层次结构。

然后在表格 View 下方添加一个 View (实际上:先添加那个),它包含背景。

最后,将 ScrollView 的委托(delegate)设置为您的类,并通过相应地更新您的背景 View 来响应滚动事件。

关于ios - 分组的 UITableView 的背景纹理不会随表格滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8596301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com