gpt4 book ai didi

ios - 使 UIView 在用作表头 View 时保持其大小

转载 作者:行者123 更新时间:2023-11-29 10:21:00 25 4
gpt4 key购买 nike

如果我使用下面的代码将 tableHeaderView 添加到表格...

UILabel *label = [UILabel new];
label.translatesAutoresizingMaskIntoConstraints = NO;
label.text = @"Hello, world!";
self.tableView.tableHeaderView = label;

结果是表格的内容被标签的高度向下推

这很好,这就是我想要的。

但是,当我使用自己的自定义 View (在代码中设置)时,它有自己的 subview 等...然后表格的内容不会被下推,标题 View 会重叠到内容上。

我没有使用 AutoLayout 来放置我的自定义 View 的 subview ,因为 View 的性质它并不真正用作 AutoLayout View 。

我的自定义 View 的框架是 (0, 0, 0, 0),标题 View 的内容被绘制在其边界之外。

我已经实现了我的自定义 View 的 - (CGSize)sizeThatFitsSize:(CGSize)size 方法,但这并没有改变任何东西。

还有什么我需要实现的吗?

示例

如果我使用以下代码在我的自定义 View 中放置一个标签...

- (instancetype)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
UILabel *label = [UILabel new];
label.text = @"Hello, world!";
[label sizeToFit];
[self addSubview:label];

label.frame = CGRectMake(0, 0, CGRectGetWidth(label.bounds), CGRectGetHeight(label.bounds));
}
return self;
}

然后标 checkout 现在和之前一样的地方但是内容没有下推。

最佳答案

当你设置为表头 View 时, View 的框架是 TableView 为 View 分配和维护的大小。

因此,您需要确定标题 View 所需的大小并在设置之前更改它的框架。

表格 View 不会为您进行查询或大小更改。自动调整规则确实适用,因此如果 TableView 框架更改,标题 View 将根据您指定的规则调整大小。这可能会导致不同的问题。

关于ios - 使 UIView 在用作表头 View 时保持其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35298079/

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