【问题标题】:Can Size Classes / Trait Collection in iOS be used programmatically when not using Autolayout不使用 Autolayout 时,iOS 中的 Size Classes / Trait Collection 能否以编程方式使用
【发布时间】:2015-09-24 08:12:40
【问题描述】:

我没有使用自动布局,但是我希望能够使我的(非常复杂的)应用程序适应 iPad 上的拆分视图多任务处理。为此,理想情况下,我想在不走自动布局路线的情况下支持尺寸类。观看 WWDC 406 会议似乎可以通过编程方式执行此操作,但我不确定,因为他们在每个示例中都使用了 Autolayout,甚至 Interface builder 也不支持它。

如果我要收听有关 trait 更改的通知并以编程方式或使用 pin 和 struts 进行所有操作,我会遇到任何问题吗?我在 Storyboards 中定义了所有内容,但是当 iPad 在 iOS 9 中并排显示两个应用程序时,我希望能够支持不同大小的视图控制器。请告知。

【问题讨论】:

  • 是的,您可以使用没有自动布局的尺寸类。您可以通过从 Master-Detail Application 模板创建应用并禁用故事板的 autolyaout 来轻松测试它。
  • 对不起,这是错误的!您在发表评论之前自己尝试过吗?关闭自动布局的那一刻,它也会禁用和关闭大小类。如果没有 AutoLayout,尺寸类本身就没有意义,因为该技术依赖于自动布局来完成它的工作。
  • 是的,我试过了,他们仍然为我工作。我看到来自 Xcode 的警报和 Size Classes 复选框未选中。但拆分视图控制器的行为没有改变,traitCollectionDidChange 在旋转后被调用
  • 那并不意味着它正在使用尺寸等级。当您使用字大小类时,您实际上指的是 Interface Builder 可视化设计不同类的能力。 'traitCollectionDidChange' 会以任何一种方式工作,因为如果你自己以编程方式进行 - 这就是我最初的问题:)
  • 哦,您的意思是在禁用自动输出的情况下更改 IB 中的大小类...在这种情况下,是的,您不能这样做。但似乎他们仍在工作

标签: ios xcode6 autolayout size-classes


【解决方案1】:

来自Apple Documentation

在 Interface Builder 中启用大小类

尺寸类需要自动布局。如果在选择 Use Size Classes 时未选中 Use Auto Layout 复选框,Xcode 会提示您启用 Auto Layout。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2015-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 2015-10-12
    • 2019-09-25
    相关资源
    最近更新 更多