25

是否可以为单元格设置最小高度?我使用动态:

tableView.estimatedRowHeight = 83.0
tableView.rowHeight = UITableViewAutomaticDimension

news title label text但是当我在一行时,我需要为单元格设置最小高度。

4

6 回答 6

64

您是否尝试过在自定义UITableViewCell视图中创建约束height >= 60.0

于 2016-02-03T05:47:01.527 回答
9

知道了。使其工作如下。

将一个视图拖放到 UITableViewCell 顶部,并将前导、尾随、顶部和底部约束设置为 0。将高度约束设置为 >= ExpectedMinimumSize。

在 heightForRowAtIndexPath 委托方法中:

-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(nonnull NSIndexPath *)indexPath
{
    return UITableViewAutomaticDimension;
}

在 ViewDidLoad 中:

self.tableView.estimatedRowHeight = 60; // required value.
于 2017-01-04T05:10:25.257 回答
9

@Hytek 回答了一个技巧。为此,您必须给出最小高度的约束。

例如:如果UILabel您的表格单元格中有一个,并且您希望UILabel根据动态内容增加高度。你有如下代码。

tableView.estimatedRowHeight = 83.0
tableView.rowHeight = UITableViewAutomaticDimension

当内容较大时,它会增加您的标签高度,但当您的内容较小时,它也会降低。因此,如果您希望该标签应具有最小高度,那么您必须以一种与您的标签UILabel相同的方式height >= 30.0对您的标签进行高度限制。

在此处输入图像描述

这样你UILabel就不会减少高度30.0

于 2018-07-03T14:10:44.297 回答
1

在自定义单元格的自动布局代码(界面生成器或以编程方式)中,添加适当的约束。

例如(以编程方式在自定义单元格中)

    UILabel * label = [UILabel new];
    [self.contentView addSubview:label];
    NSDictionary * views = NSDictionaryOfVariableBindings(label);
//Inset 5 px
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-5-[label]-5-|" options:0 metrics:nil views:views]];
    [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-5-[label]-5-|" options:0 metrics:nil views:views]];
// height >= 44
    [self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.mainLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:44.0]];
于 2016-09-06T23:40:11.933 回答
1
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return (UITableView.automaticDimension > minimumHeight) ? UITableView.automaticDimension : minimumHeight
}
于 2018-12-18T08:21:31.290 回答
1

将 contentViews heightAnchor 设置为您需要的最低高度。

以编程方式编写 Swift 4.2 版本

contentView.heightAnchor.constraint(greaterThanOrEqualToConstant: <Required least Height>).isActive = true

于 2020-03-22T10:21:07.193 回答