5

UILabels我的自定义中有三个UITableViewCell。可能有些UILabels是空的(label.text == @""

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"EventCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


        NSString *key = [[keysArray objectAtIndex:indexPath.section] description];

        UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
        namelabel.text = @"Label 1";

        UILabel *locationLabel = (UILabel *)[cell viewWithTag:101];
        location.text = @"Label 2";

        UILabel *timeLabel = (UILabel *)[cell viewWithTag:102];
        timeLabel.text = @"";

        return cell;
}

如何UILabels使用自动布局在单元格中垂直居中所有非空?

这是三个标签的样子

这是使用三个标签的外观:

UILables其中一个为空时的外观

<code>UILables</code> 之一为空时的外观

这就是我希望它看起来的样子:

这就是我希望它看起来的样子:

4

1 回答 1

3

这很难实现,但一个简单的捷径可能是使用单个标签,其中包含三行文本,限制为填充单元格的整个高度。然后标签将自动将其内容垂直居中。

您将在单元格上拥有三个字符串属性而不是三个标签,并且您的设置器将构建最终字符串(\n用于新行)并设置标签的文本。

如果每一行文本都有不同的样式,没问题,因为您可以使用属性字符串。

于 2013-02-10T09:26:37.703 回答