我的自定义 UITableViewCell
中有三个 UILabels
。
可能是某些 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
为空时的外观
这就是我想要的样子:
最佳答案
这很难实现,但一个简单的捷径可能是使用一个标签,三行文本,限制填满单元格的整个高度。然后标签将自动将其内容垂直居中。
您将在单元格上拥有三个字符串属性而不是三个标签,并且您的 setter 将构建最终字符串(使用 \n
换行)并设置标签的文本。
如果每行文本都有不同的样式,没问题,因为您可以使用属性字符串。
关于ios - 自动布局 UILabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14791831/