0

我设计了如下自定义单元格。 在此处输入图像描述

它将显示动态内容。我在为这些标签的顶部空间、底部空间、垂直拥抱优先级、垂直阻力优先级分配自动布局约束优先级并将行数设置为零和换行模式自动换行时遇到问题。我试过了,但有些标签被剪掉了,如下图所示:在此处输入图像描述

任何帮助设置标签的自动布局约束优先级将不胜感激。

label1 的约束如附图所示在此处输入图像描述

label2 的约束如附图所示在此处输入图像描述

string=@"我的名字是........我的名字是........我的名字是";

行高:

static AttendeesListViewCell *sizingCell = nil;
static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{
    sizingCell = [self.attendeess_TableView dequeueReusableCellWithIdentifier:cellIdentifierAttendessWithImage];

});

sizingCell.attendessNameLabel.text = string;
        sizingCell.attendessTitleLabel.text = string;

 sizingCell.attendessCompanyLabel.text = string;
 sizingCell.label_city.text=string;
sizingCell.label_country.text=string;

[sizingCell setNeedsLayout]; [sizingCell layoutIfNeeded]; CGSize 大小 = [sizingCell .contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

return size.height;

在行的单元格中:

AttendeesListViewCell *cell_attendee; cell_attendee = [tableView dequeueReusableCellWithIdentifier:cellIdentifierAttendessWithImage]; cell_attendee.attendessNameLabel.text = 字符串;cell_attendee.attendessTitleLabel.text = 字符串;

cell_attendee.attendessCompanyLabel.text = string; 
cell_attendee.label_city.text=string;
cell_attendee.label_country.text=string;
 return cell_attendee;

谢谢。

4

2 回答 2

0

我不确定为什么它不起作用...

从代码和 xib 文件中设置标签的行数。

// Swift
textLabel.lineBreakMode = .ByWordWrapping // or NSLineBreakMode.ByWordWrapping
textLabel.numberOfLines = 0 

// Objective-C
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

设置:1.基线对齐基线,2.自动收缩固定字体大小。

如果您共享应用于标签和代码片段的自动布局约束,我可以提供确切的解决方案。

检查这是否是您所期望的链接

于 2015-04-01T10:20:36.350 回答
0

您可能会发现需要设置以下属性。我发现我必须这样做才能让自动换行在单元格中的多行 UILabel 中正常工作。

preferredMaxLayoutWidth

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UILabel_Class/index.html#//apple_ref/occ/instp/UILabel/preferredMaxLayoutWidth

您可以在 UILabel 顶部的约束检查器窗口中设置此项。

于 2015-04-01T10:27:03.730 回答