3

I am new to auto layout and am experiencing some problems. Take the following portrait view: Portrait View

I'd like to be able to rotate the device and get a view that looks like this:

Landscape view

The button and label have fixed heights, and so I'd like the image view and the table view to resize. I can't figure out how to achieve this using auto layout. Is it even achievable at all?

I've been able to do something similar, but with a fixed height for the image view, but this is something I don't want.

Thanks in advance.

4

2 回答 2

2

是的,您可以使用 AutoLayout 来实现这一点。

UIImage 视图:

  • 顶部空间到:Superview = 0
  • 尾随空格:Superview = 0
  • 前导空格:Superview = 0
  • 底部空间到:UIButton = 0
  • 高度大于或等于:(一些最小尺寸)

用户界面按钮:

  • 顶部空间:ImageView = 0
  • 尾随空格:Superview = 0
  • 前导空格:Superview = 0
  • 底部空间到:UILabel = 0
  • 高度等于:(某个高度)

UIL标签:

  • 顶部空间到:UIButton = 0
  • 尾随空格:Superview = 0
  • 前导空格:Superview = 0
  • 底部空间到:UITableView = 0
  • 高度等于:(某个高度)

UITableView:

  • 顶部空间:UILabel = 0
  • 尾随空格:Superview = 0
  • 前导空格:Superview = 0
  • 底部空间到:Superview = 0
  • 高度大于或等于:(一些最小尺寸)
于 2013-10-22T12:51:02.757 回答
1

我不认为你可以简单地在 IB 中做到这一点。在我看来,你有两个选择:

  1. 使用 VLF 以编程方式完成所有操作,使用 UIViewController 的旋转方法添加和删除约束
  2. 在 IB 中添加所有约束,使纵向约束具有最高优先级,横向约束最低。在根据方向旋转之前,您可以更改优先级,从低到高,反之亦然

如果你给 UIImageView 和 UItableView 与约束相同的高度,你可以做任何你想做的事情。

于 2013-10-22T12:18:33.403 回答