以编程方式生成具有动态高度的约束的UITableviewCell

时间:2018-01-09 08:47:36

标签: ios objective-c uitableview uilabel nslayoutconstraint

我的iOS应用有多个UIViewControllers,其中包含UITableViews。我有一个名为ListScreenManager的类,根据传递的数据,该类为各种UITableView生成单元格。这是表委托实现之一(cellForrowAtIndex)。

static NSString *jobListTableIdentifier = @"JobListTableViewCell";

MetadataTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:jobListTableIdentifier];
NSMutableDictionary *dict;
if (tableView == self.searchDisplayController.searchResultsTableView){
    dict = [theFilteredTaskData objectAtIndex:indexPath.row];
}
else{
    dict = [theTaskData objectAtIndex:indexPath.row];
}
[MetrixListScreenManager setCellDataDictionary:dict];
if (cell == nil || cellReloadCount <= cellReloadLimit) {
    cell = [MetrixListScreenManager generateCellForListScreen:self withReuseIdentifier:jobListTableIdentifier];
    cellReloadCount++;
}

[SkinApplicationUITableViewController applySkinColorToRelevantControlsForCell:cell];

[MetrixListScreenManager populateCellDataForListScreen:self usingCell:cell andDataRow:dict];

在这个generateCellForListScreen方法中,我动态生成UILabel / Buttons(单元格中有多个UILabel)。我想做的是使这些UILabels动态高度,设置约束并调整{{ 1}}根据内容高度的高度。我设置了前导,顶部,宽度约束,现在我有2个问题。

  1. 如何使用这些约束设置UITableViewCell动态高度?
  2. 如何根据内容高度制作UILabel高度?
  3. 我只是通过添加2个UITableViewCell来制作原型应用程序,这些约束具有前导,尾随,顶部和底部约束(这些标签是我在一个单独的类中生成的。不在具有我的UITableView的视图控制器内)。然后我将表格行高度设置为UILabel并估计行高度为200.但我的行高度就像44高度。看起来它不知道约束。我怀疑这是因为我在一个单独的班级中生成这些。我对么?如果是这样,我怎么能克服这个问题呢? 请帮我。 感谢

0 个答案:

没有答案