问题标签 [size-classes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
163 浏览

autolayout - 如何在 xcode6 中使用大小类

请问,有没有人可以帮助我理解如何在 Xcode6 中使用大小类?我第一次设计拨号器。我设置了不同的约束,我没有错误消息,并且在所有屏幕(Iphone3-4-6-6+)中我都有很好的对齐键,但是我在所有屏幕中看到相同大小的键(这对我不好,因为我需要它们在 Iphone6 和 6+ 中更大)。在这种情况下,我怎样才能看到对象的正确大小和正确位置,比如钥匙?我检查了右侧面板“使用尺寸等级”和“使用自动布局”中的框,我知道我必须在不同的可选屏幕中工作,我可以在工作区域的底部选择这些屏幕(任意,任意,紧凑任意等),但我不明白选择屏幕后该怎么做(例如compact-any)。

0 投票
1 回答
893 浏览

swift - 大小类 - traitCollectionDidChange 以 nil 值崩溃

我有一个使用 Size Classes 的故事板的 swift 项目,这是一个符合 UITraitEnvironment 协议并实现了功能的 ViewController traitCollectionDidChange

当我第一次启动应用程序时traitCollectionDidChange,这似乎是合理的——它允许开发人员处理应用程序提供的第一个大小类,但是previousTraitCollection传递给它的变量是nil. 我无法检查此值是否nil为非可选,并且以任何方式访问它都会导致崩溃。在函数声明中将参数更改为可选会导致构建错误,抱怨我没有在协议中实现所需的方法。

现在我已经设法通过创建一个单独的函数来解决这个问题,该函数接受一个相同类型的可选变量,然后我可以检查它,但我想知道为什么会这样。

如果它对任何人都有用,这是我要覆盖的功能

任何人都可以对此有所了解吗?

0 投票
3 回答
1770 浏览

ios - 具有尺寸等级的 iPhone(从 5 到 6 Plus)的比例布局

我已经通过了一些关于大小类的教程,但我仍然无法弄清楚一件事。

iPhone 5、iPhone 6 和 iPhone 6 Plus 的屏幕纵横比完全相同,所以我希望它们使用相同的内容布局。说同样的话,我的意思是与屏幕的宽度和高度成正比。

但!我找不到让所有 iPhone 都成比例的方法!

只有几个真正支持比例的约束:“纵横比”、“相同宽度”+“乘数”、“相同高度”+“乘数”

约束,例如Leading Edges,Horizo​​ntal Center In Container,所有Pin约束都以逻辑点的绝对值操作,所有iPhone的屏幕在逻辑点上都有不同的大小;因此我无法在所有 iPhone 上获得相同的图片。

更新

我正在添加一张图片来解释我想要实现的目标:

在此处输入图像描述

0 投票
1 回答
877 浏览

ios - ios7 忽略任何大小类

我正在为 iOS7 和 8 iPhone 开发。由于 iOS7 不支持紧凑高度尺寸类,我认为解决此问题的共识方法是对横向 iPhone 布局使用任意尺寸类,并使用纵向紧凑宽度常规高度 (cWrH) 尺寸类纵向 iPhone 布局。

我在 any-any 中对视图设置了约束,然后修改 cWrH 中的约束常量以特定于该大小类。然而,iOS7 设备以及 Xcode 预览忽略了 any-any 约束,并将 cWrH 约束用于纵向和横向。

我不知道为什么会这样。我要做的就是根据方向设置不同的约束。

这可以使用最新的 Xcode 6.0.1 轻松复制。

半相关:Xcode 6 自适应 UI 如何向后兼容 iOS 7 和 iOS 6?

截图如下:

矩形的 x 和 y 在 Any-Any 中为 0 y=100 仅适用于 cWrH 尺寸等级

0 投票
1 回答
140 浏览

uitextview - iOS8文本视图在使用自动布局和大小类在控制器中呈现时向下滚动文本

我有一个使用大小类和自动布局在情节提要中布置的视图控制器。我在文本视图中添加了几页文本。当我在 iPad 上使用表单样式呈现包含此文本视图的控制器时,文本视图中的文本会向下滚动,并删除前 4-5 行。

如何确保 UITextView 重新排列其内容,以便第一行文本显示在顶部(预期的位置)?

这是我在故事板中看到的。当出现时,单词“test”隐藏在 textview 的顶部(单词 play 所在的位置)。

在此处输入图像描述

0 投票
3 回答
2210 浏览

ios - XCode 6 - iOS 8:以编程方式检查是否安装了视图

我在界面生成器中使用类大小,为不同的大小定义略有不同的设计。

我的一个视图没有针对特定尺寸安装。这按预期工作,但现在我想以编程方式判断该视图是否已安装。无论是否安装,看起来视图永远不会为零,而且我看不到任何要检查的 isInstalled 标志。

这样做的正确方法是什么?

0 投票
1 回答
1449 浏览

ios - 大小类 wCompact|hAny 被 wCompact|hRegular 覆盖

我在 Xcode 6 中的大小类出现了奇怪的行为。我没有设法找到它是错误还是文档误读。

问题是:我必须为 iPhone 3.5、4、4.7 英寸和 5.5 英寸设备提供不同的布局。

我创建了一个简单的示例来演示该错误:标签有 2 个约束 - 容器内的中心 X 和 Y。 在此处输入图像描述

我已将 Y 对齐约束的常量设置100为 forwCompact|hAny-100for wCompact|hRegular在此处输入图像描述

ui 在界面生成器中看起来不错,但在预览中却不好看 -wCompact|hRegular参数覆盖wCompact|hAny

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

当您想更改 vc 的大小时,我对 IB 中出现的弹出窗口中的信息感到困惑。

在此处输入图像描述 在此处输入图像描述

那么有没有办法为小型 iPhone 指定约束并为 5.5 大屏幕设置不同的约束?

0 投票
2 回答
254 浏览

ios - 具有大小类的 iOS 自动布局不会区分 3"5 和 4" 的景观?

这就是我过去几个小时一直在努力解决的问题。

我有一个包含一些标签、图片和表格视图的视图控制器。我正在使用自动布局/尺寸类,以便仅对支持的各种设备使用一个情节提要(意思是:所有尺寸的 iphone 和 iPad)。

现在一切正常,除了一件事:“宽度紧凑 x 高度紧凑”中的设置用于横向的 3"5 和 4" iPhone。因此,要么我说表格视图占用 480 像素并且 iPhone 5/5S 上有很多空间,要么我将其设置为 480 像素,但我无法可靠地在单元格中垂直对齐项目。

为什么没有办法说“这个视图应该总是占据整个宽度”?

任何解决方案,甚至解决方法,都可以。非常感谢您的时间!

0 投票
2 回答
645 浏览

ios - Xcode 6 大小类

我想问一个关于高度混淆(至少对我而言)主题的问题 - Xcode 6 中的大小类。我一直试图全面了解这一切是如何工作的,但我仍然不清楚。

在 Xcode 6 和新 iPhone 之前,一切都非常简单。对于非 Retina 和 Retina,显示器使我们能够始终使用相同的分辨率 320x480(或更高设备的 568)。标准和@2x 资产非常有意义。然而,现在我们拥有相同比例(几乎相同)的大屏幕,但工作区域不再​​相同。

大小类应该使事情成为可能,以将所有内容都放在一个故事板中。但是等等.. iPhone 6 使用@2x 资源,据我了解,这意味着该设备上的图形看起来会比 iPhone 5/5S 上的小。iPhone 6 Plus 使用@3x 资源,它们看起来也不一样了。例如,似乎不可能使某个按钮相对于屏幕的整个宽度始终具有相同的大小。当然,除非我们对此进行编码,但这会使 Size Classes 无用。

我是正确理解事物还是遗漏了什么?很高兴听到你们如何看待它。也许你知道一些好的教程?我还没有找到任何可以解释我的怀疑的东西。

提前致谢!

0 投票
0 回答
1332 浏览

xcode6 - 如何在 Xcode 6.1 中更新情节提要中所有大小类的帧?

在 Xcode 6.1 上的 Interface Builder 中使用 Storyboard 文件时,Apple 建议针对 Any/Any 大小类进行设计。完成后,不同大小的类有时会报告警告:

错位的视图 - “某些按钮”的框架在运行时会有所不同。

您可以通过执行以下操作来修复:

  1. 更改为九个尺寸等级之一。
  2. 选择一个场景。
  3. Editor -> Resolve Auto Layout Issues -> (All Views) Update Frames
  4. 重复步骤 #2 和 #3,直到 Size Class 中的所有 Scene 的帧都已更新。
  5. 转到第 1 步并重复,直到所有尺寸等级都已更新。

如果您在故事板中有 20 个不同的场景(20 x 9 大小类别 = 180 个手动帧更新),这将非常麻烦。

有没有办法告诉 Xcode 6.1 在一个命令中为每个场景、每个大小类中的“更新帧”?