Watchkit

时间:2015-04-27 01:23:36

标签: ios objective-c layout watchkit

我目前正在制作一个基于某些条件需要两种不同布局的WatchKit应用程序。因为这两个布局非常相似(一个元素比另一个布局更多),我决定为两者使用相同的接口控制器(因为没有办法以编程方式确定要加载哪个控制器)在启动时)。

然而,当涉及到不同的屏幕尺寸时会出现问题:

  1. 在我的第一个布局中,我希望这两个尺寸的三个元素都能填满整个屏幕。为了达到这个目的,我使用百分比值来表示它们的尺寸,总是加起来达到100%(这样,38mm上不需要滚动,42mm上没有空白空间)。 enter image description here

  2. 在第二种布局中,屏幕上还有几个元素。因此,当我对相同元素使用相同的百分比值时,它们会增长,因为接口控制器的总大小更大 enter image description here

  3. 你们建议我做些什么来解决这个问题?

    编辑1: 图片意味着代表我想要它的样子。现在,元素(如地图和按钮)在两种情况下都是接口控制器大小的30%和40%,这使得它们在第二种布局上变得非常庞大。我希望它们在两种情况下都保持相同的固定大小。但是,使用固定数字会使它们对于38mm而言太大或者对于42mm而言太小。

    编辑2: 似乎有点混乱:在Apple Watch上布置元素时,有三个选项:

    1. 适合内容的大小元素包含了所有元素。
    2. 相对于容器您可以为容器指定百分比值。
    3. 已修复您为其指定了一个值。
    4. 当我使用第二个选项时,相对而言,我在第一个布局中的38mm和42mm手表上都获得了完美的输出。但是,在第二个布局中向屏幕添加更多元素时,容器的大小会增加,元素的大小也会增加。 当我使用第三个选项,固定时,我可以在任何一个尺寸上获得完美的输出。元素对于38mm来说太大了,即使在第一个布局中也需要滚动。或者42mm的元素是两个小的,并且有大量的开放空间。

      我需要一个解决方案,让第一个布局中的元素填满屏幕(例如选项2),但不会增加布局2中元素的大小(例如使用选项3)。在WatchKit中无法以编程方式更改此内容,因此我需要提出可行的第三种解决方案。

      有什么建议吗?

3 个答案:

答案 0 :(得分:6)

使用两种屏幕尺寸的绝对尺寸值设计控制器会不会更容易?

与iOS的尺寸类一样,InterfaceBuilder允许通过点击+图标在手表尺寸之间切换:

enter image description here

您可以选择手表尺寸:

enter image description here

要了解不同布局的外观,您可以更改InterfaceBuilder窗口底部的预览:

enter image description here

答案 1 :(得分:1)

对于我自己的Watch应用程序中的这种情况,我创建了两个独立的组,并且我以编程方式隐藏了一个我不想看到的组。这样,我的代码可以决定在任何给定情况下使用哪一个。它不像能够调整元素大小那么好,但它似乎是我们现在能做的最好的。

答案 2 :(得分:0)

有点不清楚问题究竟是什么样子。如果没有确切发生的事情的例子,和/或关于如何设置当前尺寸的更详细信息,很难确定。

因此,可提供的最佳建议是使用可让您分别为38毫米和42毫米手表设置尺寸的选项。