• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - Xamarin.Forms 和 iOS : how to combine UseSafeArea and a background image?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 15:58:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个关于 iOS 使用 安全区域 的问题。

我通过RelativeLayout 使用背景图片,并在此背景图片上显示表单。我在表单的容器上为 iOS 使用了 margin:这很好用,但是 iPhone X 上的渲染效果不是很好。

<RelativeLayout>

    <Image Source="background.jpg" Opacity="0.75"
           Aspect="AspectFill"
           RelativeLayout.WidthConstraint =
               "{ConstraintExpression Type=RelativeToParent, Property=Width}"
           RelativeLayout.HeightConstraint =
               "{ConstraintExpression Type=RelativeToParent, Property=Height}" />

    <ScrollView RelativeLayout.WidthConstraint =
                    "{ConstraintExpression Type=RelativeToParent, Property=Width}"
                 RelativeLayout.HeightConstraint =
                    "{ConstraintExpression Type=RelativeToParent, Property=Height}">    
    <ScrollView.Margin>                
        <OnPlatform x:TypeArguments="Thickness">
            <On Platform="iOS" Value="0, 20, 0, 0" />
        </OnPlatform>
    </ScrollView.Margin>

    <StackLayout>
        <!-- Header -->
        <StackLayout VerticalOptions="Start">
            <fnc:HunterHeader />
        </StackLayout>

        <!-- Form -->
        <StackLayout VerticalOptions="CenterAndExpand"
                     Spacing="6" Margin="20">
            <!-- ... -->
        </StackLayout>
    </StackLayout>
</RelativeLayout>

所以我尝试将 UseSafeArea 设置为 true,但我得到了顶部和底部边距。

是否有可能解决这个问题,并将 UseSafeArea 和背景图像结合起来? 或者有没有办法只为 iPhone X 添加特定的边距?



Best Answer-推荐答案


选项 1 - 将安全区域应用于特定控件而不是页面

安全区域可以设置在特定控件而不是整个页面上。例如,可以将安全区域值设置为 ScrollView 的边距或填充。还需要考虑方向更改(如果您的应用支持它们)。

XAML


代码隐藏


结果

enter image description here

选项 2 - 使用 Page.BackgroundImage属性

根据要求,另一种选择是只使用 PageBackgroundImage 属性(它不受 On().SetUseSafeArea(true) 方法)。这种方法的一个问题是 BackgroundImage 在 iOS 中是“平铺的”。要解决此问题,请创建一个不会“平铺”BackgroundImage 的自定义 Xamarin.Forms.ContentPage 渲染器。 .这是一个 example .

关于ios - Xamarin.Forms 和 iOS : how to combine UseSafeArea and a background image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51553694/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap