【问题标题】:Setting z-index of ScrollView on Xamarin.Forms iOS在 Xamarin.Forms iOS 上设置 ScrollView 的 z-index
【发布时间】:2020-04-13 11:18:51
【问题描述】:

在我的 Xamarin.Forms 应用程序中,我有一个简单的网格 - 一行是标题,第二行是带有页面内容的滚动视图。在标题中,我有一个底部边距为负的图像(图像的一半需要在标题上方,另一半在滚动视图上方)。

问题是,当我滚动此滚动视图时,在 iOS 上,我的一半图像隐藏在滚动视图后面。

我制作了一个自定义渲染器,并在 OnElementChanged 中的 Android 设置 this.TranslationZ = -100; 上完成了这项工作 - 滚动时图像在滚动视图上方。

在 iOS 上,我尝试在 OnElementChanged 中设置 Layer.AnchorPointZ = -100;Layer.Transform.Translate(0, 0, -100);Layer.ZPosition = -100;,但没有任何效果 - 我的图像仍然隐藏在滚动视图后面。

我在互联网上找不到任何解决方案,所以我在这里问 - 我做错了什么? 谢谢

【问题讨论】:

  • 您是否尝试过确保在 View Hierarchy 中的 ScrollView 之后添加图像?否则,在 iOS 上,您致电 View.BringSubviewToFront(imageView)

标签: ios xamarin xamarin.forms xamarin.ios z-index


【解决方案1】:

在 iOS 渲染器中,尝试使用 LayoutSublayersOfLayer 覆盖方法来检查它是否有效,而不是在 OnElementChanged 中修改 Layer 的属性。

public override void LayoutSublayersOfLayer(CALayer layer)
{
    base.LayoutSublayersOfLayer(layer);

    layer.AnchorPointZ = -100;
    layer.Transform.Translate(0, 0, -100);
    layer.ZPosition = -100;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 2016-10-13
    • 2021-01-08
    相关资源
    最近更新 更多