gpt4 book ai didi

ios - 防止 UITableView contentInset 属性影响其 backgroundView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:53 27 4
gpt4 key购买 nike

我有一个 UITableView,其 backgroundView 属性设置为显示背景图像的 UIImageView。然后我在图像上绘制了一些单元格,一切正常。

现在我试图在屏幕顶部显示一个栏。为了防止栏覆盖 TableView 的顶部行,我将其 contentInset 属性设置为 UIEdgeInsetsMake([topBar frame].size.height, 0, 0, 0).

问题是,更改 contentInset 似乎也会将背景 ImageView 向下推,因此我的表格顶部出现了一个奇怪的白色间隙。更奇怪的是,只要我滚动表格 View ,它就会自行修复。有人知道发生了什么事吗?

如果我更改表格的 frame 而不是它的 contentInset 以便为顶部栏腾出空间,一切正常,但表格 View 的背景图像也是向下移动,这使得该 View 与应用中没有顶部栏的其他表格 View 相比显得不一致。

这就是我在表格的 init 方法中设置表格背景的方式:

_backgroundImageView = [[UIImageView alloc] initWithFrame:backgroundRect];
[_backgroundImageView setImage:...];
[_backgroundImageView setContentMode:UIViewContentModeBottom];
[self setBackgroundView:_backgroundImageView];

并且在 View Controller 的viewDidLoad

[_tableView setContentInset:UIEdgeInsetsMake([_topBarView frame].size.height, 0, 0, 0)];

编辑:好吧,将 setContentInsetviewDidLoad 移到 viewDidAppear: 使其正常工作,除了当 View 显示时,内容插入是错误的,然后一旦 View 出现它就会卡入到位。将行移动到 viewWillAppear: 而是使其行为与以前一样。猜猜 viewWillAppear:viewDidAppear: 之间发生了一些我不知道的奇怪的事情......

最佳答案

你可能只是让你的表格 View 透明,然后在它后面放一个 ImageView 。避免其他 View (在您的情况下是顶部栏)的正确方法是设置 frame 属性。

关于ios - 防止 UITableView contentInset 属性影响其 backgroundView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597757/

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