将右侧UITableViewCell中的标签与“自动布局”对齐
本文关键字:自动布局 对齐 标签 UITableViewCell | 更新日期: 2023-09-27 18:29:30
我想对may表视图单元格内容使用自动布局。到目前为止,这是有效的。现在,我想在表视图的右侧对齐一个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#编写的,但这并不重要。如果你能提供一个解决方案,我会很高兴。
此格式字符串:"H:|-[iNumberLabel]-|"
告诉系统使用默认填充将标签固定到单元格的两侧,因此标签将接近单元格的宽度。你应该去掉左边的间距,如果你想让它右对齐,
"H:[iNumberLabel]-|"
我不知道为什么第二种方法不起作用。如果这是你唯一的水平约束,它应该起作用。
除了用将其固定在右侧之外
"H:[iNumberLabel]-|"
您还应该使用以下内容对文本进行右对齐:
cell.textLabel.textAlignment = NSTextAlignmentRight;
编辑:仅适用于iOS 8。目前没有适用于iOS 7的解决方案。
这就是的罪魁祸首
this.ContentView.TranslatesAutoresizingMaskIntoConstraints = false;
当我创建并添加标签作为子视图时,我就有了这个集合。关闭此选项后,单元格的宽度似乎无法正确布局。也许必须为ContentView
添加一些额外的约束,但我不知道是哪一个(内容视图到超级视图?)。
必须为内容视图启用自动调整掩码大小。