【发布时间】:2015-07-06 06:12:55
【问题描述】:
大家好,我有一个 TableHeaderView,一切都由 Autolayout 管理:
顶部的
UIImageView应始终为 2:1,因此我设置了纵横比和其他所需的约束。4
UIButtons应该始终是水平的,并且应该具有相同的高度和宽度。所以我使用了等宽和等高以及 1:1 的纵横比-
我有两个
UILabels,numberOfLines设置为 0。由于preferredMaxLayoutWidth,我还创建了我的UILabel的子类,如下所示:- (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 被拉伸并且有很多空白。也许我错过了什么?
【问题讨论】:
-
能否发一张运行时结果的截图?
-
和headerView,有什么限制,在哪里初始化?
-
我添加了另一个截图以便更好地理解!
-
你有从
description到视图底部的约束吗? -
是的,底部有约束
标签: ios objective-c uitableview nstableheaderview