gpt4 book ai didi

ios - 带自动布局的 tableHeaderView 无法正常工作

转载 作者:行者123 更新时间:2023-11-28 17:56:17 27 4
gpt4 key购买 nike

大家好,我有一个 TableHeaderView,一切都由 Autolayout 管理:

  • 顶部的 UIImageView 应始终为 2:1,因此我设置了纵横比和其他所需的约束。

  • 4 个 UIButtons 应始终水平放置,并且应具有相同的高度和宽度。所以我使用等宽和等高以及 1:1 的纵横比

  • 我有两个 UILabelsnumberOfLines 设置为 0。我还为 UILabel 创建了一个子类,因为preferredMaxLayoutWidth,像这样:

    - (void) layoutSubviews
    {
    [super layoutSubviews];

    if ( self.numberOfLines == 0 )
    {
    if ( self.preferredMaxLayoutWidth != self.frame.size.width )
    {
    self.preferredMaxLayoutWidth = self.frame.size.width;
    [self setNeedsUpdateConstraints];
    }
    }
    }

这是我的代码:

- (void)initializeHeaderViewLabels
{
//After the Response from my server arrived i set the tableHeaderView with the Textdata
self.tableView.tableHeaderView = nil;

if((self.contentDict[@"title"]) != [NSNull null])
{
self.headerTitleLabel.text = (self.contentDict[@"title"]);
}

if((self.contentDict[@"shortDescription"]) != [NSNull null])
{
self.headerDescriptionLabel.text = (self.contentDict[@"shortDescription"]);
}

[self.headerView setNeedsLayout];
[self.headerView layoutIfNeeded];

CGFloat height = [self.headerView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

CGRect headerFrame = self.headerView.frame;
headerFrame.size.height = height;
self.headerView.frame = headerFrame;

[self.tableView setTableHeaderView:self.headerView];

}

我从我的服务器获取我的图像和 UILabels 的文本,所以我必须等到响应到达,然后我调用 initializeHeaderViewLabels

**我的问题是 tableHeaderView 在运行时太大了,所以我的 UILabels 被拉伸(stretch)并且有很多空白。也许我错过了什么?

最佳答案

为了让它工作,您需要一些魔法或从表头 View 迁移。我已经回答过类似的问题here .诀窍是在通过自动布局评估其高度后神奇地重置 tableHeaderView。我为此创建了示例项目:TableHeaderView+Autolayout .

关于ios - 带自动布局的 tableHeaderView 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901719/

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