使用自动布局将右侧的UITableViewCell中的标签对齐

时间:2014-11-07 14:32:47

标签: c# ios uitableview autolayout

我想对表格视图单元格内容使用自动布局。这到目前为止工作。现在我想在表格视图的右侧对齐UILabel。如果我这样做,它就没有正确对齐。相反,它完全在左侧。因此,当应用约束时,似乎不计算表视图的宽度。我尝试了两种不同的方法:

没有。 1:

this.ContentView.AddConstraints (NSLayoutConstraint.FromVisualFormat ("H:[iNumberLabel]-|", (NSLayoutFormatOptions)0, null, viewsDictionary));

没有。 2:

this.ContentView.AddConstraint (NSLayoutConstraint.Create (iNumberLabel, NSLayoutAttribute.Right, NSLayoutRelation.Equal, this.ContentView, NSLayoutAttribute.Right, 1, 0));

约束在我的表视图单元子类中的UpdateConstraints中添加。代码在C#中,但这无关紧要。如果你能提供解决方案,我会很高兴。

3 个答案:

答案 0 :(得分:1)

此格式字符串:"H:|-[iNumberLabel]-|"

告诉系统使用默认填充将标签固定到单元格的两侧,因此标签几乎是单元格的宽度。如果你想要正确对齐,你应该摆脱左侧的间距

"H:[iNumberLabel]-|"

我不知道为什么第二种方法不起作用。如果那是你唯一的横向约束,它应该有效。

答案 1 :(得分:1)

除了将其固定在右侧:

"H:[iNumberLabel]-|"

您还应该右键使用以下内容突出显示文本:

cell.textLabel.textAlignment = NSTextAlignmentRight;

答案 2 :(得分:0)

编辑:仅适用于iOS 8.目前还没有针对iOS 7的解决方案。

这是罪魁祸首

this.ContentView.TranslatesAutoresizingMaskIntoConstraints = false;

我创建时设置了这个集,并将我的标签添加为子视图。当关闭它时,单元格的宽度似乎没有正确布局。也许必须为ContentView添加一些额外的约束,但我不知道哪个(超级视图的内容视图?)。

必须为内容视图启用自动调整大小屏幕。