Watchkit 中元素大小相对于屏幕大小
Element size relative to screen size in Watchkit
我目前正在制作一个 WatchKit 应用程序,它根据某些条件需要两种不同的布局。因为这两种布局非常相似(只是元素比另一种多),所以我决定对两者使用相同的界面控制器(因为无法通过编程方式确定在启动时加载哪个控制器)。
但是,当涉及到不同的屏幕尺寸时,问题就出现了:
在我的第一个布局中,我希望这三个元素以两种尺寸填充屏幕。为实现这一点,我为它们的尺寸使用了百分比值,总加起来为 100%(这样,38mm 上就不需要滚动,42mm 上也没有空白 space)。
在第二种布局中,屏幕上多了几个元素。所以当我对相同的元素使用相同的百分比值时,它们会增长,因为界面控制器的总大小更大。
你们建议我做什么来解决这个问题?
编辑 1:
图片旨在代表我想要的样子。现在,在这两种情况下,元素(如地图和按钮)都是界面控制器大小的 30% 和 40%,这使得它们在第二个布局中变得很大。我希望它们在两种情况下都保持相同的固定大小。然而,使用固定数字会使它们对 38mm 来说太大或对 42mm 来说太小。
编辑 2:
好像有点混乱:在Apple Watch上布局元素时,有3种选择:
- 大小适合内容 元素包含其中的所有元素。
- 相对于容器你给它一个容器的百分比值。
- 固定你给它一个点值。
当我使用第二个选项时,相对的,我在第一个布局中的 38 毫米和 42 毫米手表上都获得了完美的输出。但是,当在第二个布局中向屏幕添加更多元素时,容器的大小会增加,元素的大小也会增加。
当我使用第三个选项时,固定的,我可以在任何一种尺寸上获得完美的输出。这些元素对于 38mm 来说太大了,即使在第一个布局中也需要滚动。或者元素是 42mm 的两个小,并且有负载打开 space。
我需要一个解决方案,让第一个布局中的元素充满屏幕(例如选项 2),但不会增加布局二中元素的大小(例如选项 3)。无法在 WatchKit 中以编程方式更改此设置,因此我需要想出第三个可行的解决方案。
有什么建议吗?
有点不清楚问题到底是什么。如果没有确切说明发生了什么的示例,and/or 关于您如何设置当前大小的更多详细信息,则很难确定。
因此,可以提供的最佳建议是使用可让您分别为 38 毫米和 42 毫米手表设置尺寸的选项。
对于我自己的 Watch 应用中的这种情况,我创建了两个单独的组,并以编程方式隐藏了我不想显示的组。这样,我的代码可以决定在任何给定情况下使用哪一个。它不如能够调整元素大小那么好,但它似乎是我们目前能做的最好的。
为两种屏幕尺寸设计具有绝对尺寸值的控制器会不会更容易?
与 iOS 的尺寸 类 一样,InterfaceBuilder 允许通过单击 +
图标在手表尺寸之间切换:
在哪里可以选择手表尺寸:
要查看不同布局的外观,您可以更改 InterfaceBuilder 底部的预览 window:
我目前正在制作一个 WatchKit 应用程序,它根据某些条件需要两种不同的布局。因为这两种布局非常相似(只是元素比另一种多),所以我决定对两者使用相同的界面控制器(因为无法通过编程方式确定在启动时加载哪个控制器)。
但是,当涉及到不同的屏幕尺寸时,问题就出现了:
在我的第一个布局中,我希望这三个元素以两种尺寸填充屏幕。为实现这一点,我为它们的尺寸使用了百分比值,总加起来为 100%(这样,38mm 上就不需要滚动,42mm 上也没有空白 space)。
在第二种布局中,屏幕上多了几个元素。所以当我对相同的元素使用相同的百分比值时,它们会增长,因为界面控制器的总大小更大。
你们建议我做什么来解决这个问题?
编辑 1: 图片旨在代表我想要的样子。现在,在这两种情况下,元素(如地图和按钮)都是界面控制器大小的 30% 和 40%,这使得它们在第二个布局中变得很大。我希望它们在两种情况下都保持相同的固定大小。然而,使用固定数字会使它们对 38mm 来说太大或对 42mm 来说太小。
编辑 2: 好像有点混乱:在Apple Watch上布局元素时,有3种选择:
- 大小适合内容 元素包含其中的所有元素。
- 相对于容器你给它一个容器的百分比值。
- 固定你给它一个点值。
当我使用第二个选项时,相对的,我在第一个布局中的 38 毫米和 42 毫米手表上都获得了完美的输出。但是,当在第二个布局中向屏幕添加更多元素时,容器的大小会增加,元素的大小也会增加。 当我使用第三个选项时,固定的,我可以在任何一种尺寸上获得完美的输出。这些元素对于 38mm 来说太大了,即使在第一个布局中也需要滚动。或者元素是 42mm 的两个小,并且有负载打开 space。
我需要一个解决方案,让第一个布局中的元素充满屏幕(例如选项 2),但不会增加布局二中元素的大小(例如选项 3)。无法在 WatchKit 中以编程方式更改此设置,因此我需要想出第三个可行的解决方案。
有什么建议吗?
有点不清楚问题到底是什么。如果没有确切说明发生了什么的示例,and/or 关于您如何设置当前大小的更多详细信息,则很难确定。
因此,可以提供的最佳建议是使用可让您分别为 38 毫米和 42 毫米手表设置尺寸的选项。
对于我自己的 Watch 应用中的这种情况,我创建了两个单独的组,并以编程方式隐藏了我不想显示的组。这样,我的代码可以决定在任何给定情况下使用哪一个。它不如能够调整元素大小那么好,但它似乎是我们目前能做的最好的。
为两种屏幕尺寸设计具有绝对尺寸值的控制器会不会更容易?
与 iOS 的尺寸 类 一样,InterfaceBuilder 允许通过单击 +
图标在手表尺寸之间切换:
在哪里可以选择手表尺寸:
要查看不同布局的外观,您可以更改 InterfaceBuilder 底部的预览 window: