代码之家  ›  专栏  ›  技术社区  ›  rustyshelf

在IB中处理横向/纵向差异的最佳方法是什么?

  •  8
  • rustyshelf  · 技术社区  · 17 年前

    我有一个支持横向和纵向查看的视图,当您从一个切换到另一个时,控件都会移动。我正在做这项工作,通过设置我的每一个控制中心时,用户旋转手机。问题是,这是乏味的,需要大量的代码,似乎挫败了最初使用接口生成器的目的。

    我的问题是:在Interface Builder中,有没有一种方法可以让一个视图支持多个外观(一个用于横向,一个用于纵向)?如果不是,其他人怎么用IB做这个?你设置了两个视图吗?

    编辑:为了澄清我的横向和纵向视图看起来不同,我不想直接转换,我实际上在横向模式下以不同的方式显示数据

    4 回复  |  直到 17 年前
        1
  •  1
  •   Ed Marty    17 年前

    必要时,我补充说 UIView UILabel

    UIView公司 在 ViewDidLoad CGRect s、 当然,这只在没有任何视图在旋转时自动调整大小或重新定位时有效,在这种情况下,您可能不应该这样做。我这样做是为了调整大小/重新定位,而不仅仅是在屏幕旋转时。

        2
  •  0
  •   Colin Barrett    17 年前

    我不能百分之百确定是否可能,但你有没有考虑过使用不同的景观和肖像视图控制器?

        3
  •  0
  •   Arrel    17 年前

    IB(command 3)的Size Inspector中的IBOutlet对象的AutoSize属性为项目的自动拉伸和定位提供了一些非常好的选项。您可以控制L/R和T/B屏幕的位置以及相对宽度和高度。您无法完全控制布局,但大多数基本操作都在那里。

        4
  •  0
  •   Martin    15 年前

    一个视图在IB中支持多个方向的唯一方法是将组件的自动调整大小掩码设置为“缩放”和/或“定位到边”。要为每个方向设计完全不同的布局,您需要分别设计纵向视图和横向视图(每个视图都在自己的XIB中),并以编程方式在它们之间切换。