我的ScrollView在我的iPhone X的第一个孩子上方和最后一个孩子下方添加了额外的空间。这是该图像上方的蓝色空白。没有填充或边距。
我给ScrollView设置了蓝色背景,以更好地查看其尺寸。 如果我删除ScrollView,间距也消失了。这是我正在使用的代码
touchmove
这可能是错误,还是iOS状态栏渲染导致的? 我的UWP项目也没有间距
答案 0 :(得分:2)
第1行丢失
更改此
<animatedViews:SavannahCanvasView HorizontalOptions="Center" Grid.Row="0" />
<Grid Grid.Row="2" BackgroundColor="#fbc531">
对此
<animatedViews:SavannahCanvasView HorizontalOptions="Center" Grid.Row="0" />
<Grid Grid.Row="1" BackgroundColor="#fbc531">`
答案 1 :(得分:1)
在iOS 11之后,滚动视图中添加了一个名为contentInsetAdjustmentBehavior
的属性。
来自document:
此属性指定如何使用安全区域插图进行修改 滚动视图的内容区域。
因此,您需要使用custom renderer
来配置此属性:
在代码隐藏中:
public class myScrollView : ScrollView {
}
在自定义渲染器中:
[assembly: ExportRenderer(typeof(myScrollView), typeof(MyScrollviewRender))]
namespace App308.iOS
{
class MyScrollviewRender : ScrollViewRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.OldElement != null || Element == null)
{
return;
}
if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
{
this.ContentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentBehavior.Never;
}
}
}
}
在Xaml中:
<local:myScrollView>
<!-- The MenuItems -->
<Grid x:Name="myGrid" RowSpacing="0"
ColumnSpacing="0"
Margin="0, 0, 0, 0">
....
</Grid>
</local:myScrollView>