[iOS];如何为顶部和底部状态栏保留 space

[iOS]; How to leave space for top and bottom status bar

我发现 (至少在最新的 iPhones 上)没有多大意义,因为顶部的 space 已部分消耗,例如通过相机。

底部的类似问题:有一个 'swipe bar' 应该留一些 space。

因此我的问题是:为 iPhone 屏幕顶部的状态栏和屏幕底部的 'swipe bar' 保留适量的 space 的正确方法是什么? iPhone 屏幕?

提前致谢

的确,确保应用内容不会被 'notch' 或 current-generation iPhone 上的底部滑动区域遮挡(以及一些较新的 Android 设备以及)是一个重要的考虑因素。

Uno 平台使用 VisibleBoundsPadding behavior 处理此问题。您可以将此行为附加到任何兼容的容器(例如 PanelBorder),容器的 content 将被填充以保持在 'safe' 屏幕区域。

一般来说,您应该将应用程序中的所有 'content'(例如文本、图像、交互元素)放置在 VisibleBoundsPadding 区域内,但是一些视觉元素,例如 full-screen 背景可能走出去。

您可以将 VisibleBoundsPadding 放置在应用程序中您希望的任何位置(包括多个位置),但通常将其放置在根元素上或根元素附近是有意义的。它将自动调整以适应旋转和其他布局更新。

这是一个简单的例子:

<Page x:Class="UnoTestbed20.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:local="using:UnoTestbed20"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:toolkit="using:Uno.UI.Toolkit"
      mc:Ignorable="d">

    <Grid Background="LightBlue" toolkit:VisibleBoundsPadding.PaddingMask="All">
        <Border Background="LightYellow">
            <TextBlock Text="Hello, world!"
                       Margin="20"
                       FontSize="30" />
        </Border>
    </Grid>
</Page>

结果显示在 iPhone 11: