自动布局:在TableViewCell中排列两个UILabel

时间:2015-01-06 05:06:39

标签: ios objective-c uitableview uilabel autolayout

我是iOS开发的新手,似乎Auto Layout是我最容易混淆的部分。

我有一个UITableViewCell,它是一个动态原型。

在单元格中,在故事板场景中,我创建了:

{[UILABEL] [UILABEL]}< - TableViewCell

我希望两个标签彼此相邻。

第一个UILabel是日期(月/日),第二个UILabel是标题。

我知道标题太大了。但是,它仍然需要位于日期标签旁边,它们之间只有很小的空间。

实施例。 12/01示例标题

我已经在故事板中尝试了所有内容 - 从尝试允许Xcode自动“建议约束”到通过设置右,左和底限制创建我自己的约束。同样,将标题标签的内容拥抱属性配置为垂直和水平的1000。

日期标签正确显示。然而,标题标签根本没有出现......除了侧面的一些错误的白色规格。 =(

如果我按住该行,我可以在日期标签后面和整个行中看到背景中的标题。

我通过cellForRowAtIndexPath方法以编程方式配置每一行的文本:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}

// get the label objects of the cell
UILabel *dateLabelOfCell = (UILabel *)[cell viewWithTag:0];
UILabel *titleLabelOfCell = (UILabel *)[cell viewWithTag:1];

dateLabelOfCell.text = date;
titleLabelOfCell.text = title;

任何想法我做错了什么?

更新1:

看起来正在设置标签文字。数据没有显示出来。所以,我更多地考虑使用viewwithtag设置单元格标签,我发现其他人遇到了这个问题:

UILabel with viewWithTag - (text not appearing)

然而,他们的解决方案都不起作用。任何想法为什么第一个UILabel出现而第二个不出现?如果我点击该行,我只会看到第二个UILabel。

1 个答案:

答案 0 :(得分:0)

我确定了这个问题。

第二个UILabel没有出现的原因并不是由于自动布局。

问题是因为我的标签号码使用0和1。所以,我更改了故事板文件中的标签号,并更新了匹配的代码,它们都出现了。

我认为使用0引起问题和干扰的原因是因为tableviewcell的默认标签号也是0。

因此,请确保您使用的标签号是唯一的。