Autolayout自定义UITableViewCell中标签的优先级

时间:2015-04-01 09:59:35

标签: ios ios-autolayout

我设计了自定义单元格,如下所示。 enter image description here

它将显示动态内容。我在为顶部空间,底部空间,垂直拥抱优先级,这些标签的垂直电阻优先级和设置的行数为零以及换行模式wordwrap分配autolayout约束优先级时面临问题。 我试过但是有些标签被剪掉了,如下图所示:enter image description here

任何有关为标签设置自动布局约束优先级的帮助都将受到赞赏..

label1的约束如附图enter image description here

所示

label2的约束如附图enter image description here

所示

string = @"我的名字是........我的名字是........我的名字是&#34 ;;

行高:

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 size = [sizingCell .contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

return size.height;

在行的单元格中:

AttendeesListViewCell * cell_attendee;          cell_attendee = [tableView dequeueReusableCellWithIdentifier:cellIdentifierAttendessWithImage];     cell_attendee.attendessNameLabel.text = string;     cell_attendee.attendessTitleLabel.text = string;

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

感谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

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

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

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

检查这是否是您所期望的link

答案 1 :(得分:0)

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

preferredMaxLayoutWidth

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

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