如何让我的UITextView居中并调整大小以适合它包含的文本而不是硬编码?

时间:2015-04-19 23:44:30

标签: ios autolayout uitextview

我有一个带有UITextView,UIImage和三个UILabel的UIViewController,当它在iOS模拟器上运行时它看起来像这样:

Portrait UIViewController rendering

但当我将其翻转为横向时,中央UITextView会垂直缩小,以至于文本甚至不再可见:

Landscape UIViewController rendering

UIImage被隐藏并位于UITextView的顶部,当我旋转到横向时它不会扭曲。 UITextView的当前约束是:

Align Center Y to: Superview
Align Center X to: the UIImage
Top Space to image: Default
Width Equals 250

我尝试调整拥抱和压缩优先级无济于事。我的理论是,缺少高度约束会导致这种情况,而且,当我设置高度约束为250时,我看不到它会缩小(但它感觉不是正确的事情)。我需要什么约束才能让它根据它包含的文本自行调整大小?

在回应下面的评论时,我的约束如下:

在顶部中心的UIImageView上:

1.) Align Center X to SuperView
2.) Align Center X to Text View = 4
3.) Top Space to Top Layout = 15
4.) Bottom Space to Text View = Default

在我想要的文本视图下面:

1.) Align Center Y to SuperView
2.) Width Equals: 250
3.) Align Center X to Image 
4.) Top Space to Image

在下面最左边的标签上我有:

1.) Leading Space to Superview = 45
2.) Trailing Space to Center Label
3.) Align Center Y to rightmost label
4.) Bottom Space to Bottom Layout

在隐藏的中心标签上我用来在两个显示的标签之间创建一些空格:

1.) Align Center X to SuperView
2.) Trailing Space to rightmost label = Default
3.) Align Center Y to leftmost label
4.) Align Center Y to rightmost label
5.) Bottom Space to Bottom Label = 8
6.) Equal height to rightmost label

最后,在最右边的标签上我有:

1.) Trailing Space to Superview = 45
2.) Leading Space to center hidden label = default
3.) Align Center Y to leftmost label
4.) Align Center Y to center hidden label
5.) Bottom Space to Bottom Layout = Default
6.) Equal Height to center hidden Label

我真正想要解决的是文本视图“拥抱”它的内容并自由扩展以保存文本所需的内容。但调整拥抱/压缩优先级似乎并没有这样做,当我将其翻转时,它正在缩小。

0 个答案:

没有答案