我已经让我的应用程序在我的iPhone上工作在一个规模,看起来不错。我现在已经在iPad上运行了,所有的东西都变得更宽了,文字看起来也小了很多。我已经在两个设备上打开了应用程序,并将它们放在一起,它看起来好像文本大小实际上是相同的。显然,它在大屏幕上看起来更小。
另一件很奇怪的事是在iPad上,应用屏幕填满了整个屏幕,但在iPhone上,它在顶部和底部之间各有10%的差距。
我查阅了苹果的资料和kivy文档,但没有发现任何结论。
我怎样才能使它们在任何iOS设备上自动缩放?另外,我怎样才能让应用程序填满iPhone的整个屏幕?这是Xcode中需要改变的东西,还是一个很重要的东西?我在这儿有点迷路了。如有任何帮助,我将不胜感激。
编辑:我将包括一个小部件从我的一个kivy页面,也许问题是在我的方式布局它。
BoxLayout:
pos_hint: {"top": .9, "center_x": .5}
size_hint: 1, .3
size_hint_y: None
height: 450 # set 330 for iphone
ScrollView:
Label:
id: brief_res_1
font_size: '11sp'
do_scroll_x: True
size_hint_y: None
size_hint_x: None
size: self.texture_size
halign: "left"
valign: "center"
text:
我建议在kv
中使用size_hint
和pos_hint
的小部件,并使用kivy.metrics
(sp
)的font_size
。
据我所知,由于iphone和ipad的屏幕尺寸和比例不同,目前还没有具体的答案。但是,我建议您尝试两种解决方案:
kivy.utils
的platform
变量存储了它所运行的平台的名称。如果我是正确的,如果你的应用程序在iPhone上运行,那么它应该返回"ios"
,和"unknown"
iPad,因为它显然不检查"ipados"
。如果这是真的,你应该从你的ios兼容脚本中分离出一个kivy脚本,它更喜欢iPad的屏幕大小,然后你可以添加一个检查,像这样:
from kivy.utils import platform
from kivy.lang import Builder
if platform == "ios":
Builder.load_file("ios.kv")
elif platform == "unknown":
Builder.load_file("ipados.kv")
else:
# your preferences...
- 如果出于某种原因
platform
在iPad上返回"ios"
,那么我说您应该首先获得屏幕分辨率,然后做类似于上述示例的检查,如下所示:
from kivy.core.window import Window
Window.fullscreen = True
Window.maximize()
resolution = Window.size
Window.fullscreen = False
if resolution[0] / resolution[1] < 1:
Builder.load_file("ios.kv")
else:
Builder.load_file("ipados.kv")
要填满整个屏幕,你可以在Xcode的常规页面中勾选" Requires fullscreen "复选框。之后,运行你的应用程序,它应该可以工作了。