使用UIImageView Interface Builder MonoTouch自动调整UILabel高度

时间:2013-01-17 04:35:20

标签: xamarin.ios uiimageview interface-builder uilabel autolayout

我来自Android背景,我会使用height = wrap_content来解决我的问题。我在此标签下方有一个UILabelUIImageView作为底部的边框。但是,我不确定标签的文字有多长,当标签变大时会出现问题。我试过设置

Label.Lines = 0;
Label.LineBreakMode = UILineBreakMode.WordWrap;
Label.SizeToFit();

如果Label增长多行,则会包裹AutoLayout,但它会覆盖下面的图像。

所以我的问题是,如何使标签高度依赖于文本并在其下方显示所有内容?我查看了很多SO Q& A,他们在Interface Builder中对ConstraintsScrollView发表评论,有人说你必须计算标签的高度并在代码中推送其他所有内容?但他们都没有明确表示要实现这一目标的步骤(特别是在MonoTouch中)

此外,此内容位于{{1}}中,因此我假设我必须计算页面上的每个标签高度才能设置滚动视图的内容大小?

1 个答案:

答案 0 :(得分:0)

您只需要在标签和图像上添加底部约束,以便在标签扩展时保持底部边距并向下推图像视图。

要添加约束,您需要选择视图以在情节提要中添加约束,并在右侧选择添加新约束下的红线,如图所示。

constraint image

如果在这种情况下,滚动视图仅包含标签和图像视图,则可以尝试在标签和图像上添加left,right,top和bottom边距,并且滚动视图将自动调整内容大小。 >

但是请确保滚动视图的高度不大于屏幕的高度。即您需要将left,right,top和bottom的边距设置为零。

enter image description here

总结一下:

  1. 打开情节提要文件。
  2. 为滚动视图添加左上,右上和下边距为0。
  3. 在标签的合适值上添加左右上边距和下边距。
  4. 为图像视图添加合适的左上角和左下角边缘。