在 Xamarin.Forms iOS 上设置 z-index 的 ScrollView
Setting z-index of ScrollView on Xamarin.Forms iOS
在我的 Xamarin.Forms 应用程序中,我有一个简单的网格 - 第一行是 header,第二行是带有页面内容的滚动视图。在 header 中,我有一个底边距为负的图像(图像的一半需要超过 header,另一半需要超过滚动视图)。
问题是,当我滚动此滚动视图时,iOS 我的一半图像隐藏在滚动视图后面。
我制作了一个自定义渲染器并在 Android 设置 this.TranslationZ = -100;
中 OnElementChanged
完成了这项工作 - 滚动时图像在滚动视图上。
在 iOS 我尝试在 OnElementChanged
中设置 Layer.AnchorPointZ = -100;
、Layer.Transform.Translate(0, 0, -100);
、Layer.ZPosition = -100;
但没有任何效果 - 我的图像仍然隐藏在滚动视图后面。
我在 Internet 上找不到任何解决方案,所以我在这里问 - 我做错了什么?
谢谢
在 iOS 渲染器中,尝试使用 LayoutSublayersOfLayer
覆盖方法来检查它是否有效,而不是在 OnElementChanged
中修改 属性 of Layer
.
public override void LayoutSublayersOfLayer(CALayer layer)
{
base.LayoutSublayersOfLayer(layer);
layer.AnchorPointZ = -100;
layer.Transform.Translate(0, 0, -100);
layer.ZPosition = -100;
}
在我的 Xamarin.Forms 应用程序中,我有一个简单的网格 - 第一行是 header,第二行是带有页面内容的滚动视图。在 header 中,我有一个底边距为负的图像(图像的一半需要超过 header,另一半需要超过滚动视图)。
问题是,当我滚动此滚动视图时,iOS 我的一半图像隐藏在滚动视图后面。
我制作了一个自定义渲染器并在 Android 设置 this.TranslationZ = -100;
中 OnElementChanged
完成了这项工作 - 滚动时图像在滚动视图上。
在 iOS 我尝试在 OnElementChanged
中设置 Layer.AnchorPointZ = -100;
、Layer.Transform.Translate(0, 0, -100);
、Layer.ZPosition = -100;
但没有任何效果 - 我的图像仍然隐藏在滚动视图后面。
我在 Internet 上找不到任何解决方案,所以我在这里问 - 我做错了什么? 谢谢
在 iOS 渲染器中,尝试使用 LayoutSublayersOfLayer
覆盖方法来检查它是否有效,而不是在 OnElementChanged
中修改 属性 of Layer
.
public override void LayoutSublayersOfLayer(CALayer layer)
{
base.LayoutSublayersOfLayer(layer);
layer.AnchorPointZ = -100;
layer.Transform.Translate(0, 0, -100);
layer.ZPosition = -100;
}