如何将视图约束到UITextView的第一个基线?

时间:2016-08-25 10:55:52

标签: ios autolayout uitextview baseline

我拼命想要在Interface Builder中约束UILabelUITextView的第一个基线。根据我的理解,通过简单地添加以下约束(伪代码),这应该是非常容易的:

label.firstBaseline = textView.firstBaseline

但是,根据其他约束和一些视图设置,我会得到非常尴尬的结果,如以下屏幕截图所示。

第一种情况:禁用滚动&对齐顶边

这仅用于显示常规视图设置。我已禁用textView的滚动功能以避免歧义。 (否则textView无法根据其包含的文本计算自己的高度。)

1st case: Align top edges of both views

第二种情况:禁用滚动&对齐第一个基线

与第一种情况相同的设置,唯一的区别是我删除了对齐视图顶边的约束,并添加了一个约束视图的第一个基线的约束。

出于某种原因,标签"起飞"远远超出其超级视图的范围,最终位于7764的y位置。不知道为什么。

2nd case: Align first baselines

第3例:约束身高&对齐第一个基线

现在我为textView启用了滚动并改为限制其高度。

显然,label的第一个基线与textView的上边缘对齐,即使约束说要对齐它们的第一个基线。我在Apple文档中读到,如果该视图没有基线,firstBaseline参数会返回视图的上边缘。所以似乎textView在这种情况下没有第一个基线。

3rd case: Align first baselines and add height constraint

UITextView一般没有firstBaseline吗? 如果是这样:为什么?毕竟,它是一个绘制文本的视图,因此应该设置此属性。

对此的任何想法都表示赞赏。

0 个答案:

没有答案