Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 模态视图弹出框:始终全屏显示?_Xamarin.ios - Fatal编程技术网

Xamarin.ios 模态视图弹出框:始终全屏显示?

Xamarin.ios 模态视图弹出框:始终全屏显示?,xamarin.ios,Xamarin.ios,我已经创建了一个视图。从底部显示,高度为200 我正在使用以下代码来演示它(在触摸事件中): 然而,当它被呈现时,它总是充满屏幕,而不是只有200的高度 我尝试过更改ModalPresentationStyle属性,但没有任何区别 如何修复它?即使您将ModalViewController视图的框架设置为 pvc.View.Frame = new CGRect(0, this.View.Frame.Height - 200, this.View.Frame.Width, 200); 在Moda

我已经创建了一个视图。从底部显示,高度为200

我正在使用以下代码来演示它(在触摸事件中):

然而,当它被呈现时,它总是充满屏幕,而不是只有200的高度

我尝试过更改ModalPresentationStyle属性,但没有任何区别

如何修复它?

即使您将ModalViewController视图的框架设置为

pvc.View.Frame = new CGRect(0, this.View.Frame.Height - 200, this.View.Frame.Width, 200);
ModalViewController内部,在视图将出现视图显示方法之间,帧属性值正在更改。这是因为ViewWillLayoutSubviews方法是在viewwillbeenviewdidebeen方法之间调用的。此方法,ViewWillLayoutSubviews是实际设置Frame属性的位置。它设置帧属性的默认值,即全屏大小。因此,您应该在该方法中设置自定义框架特性值,以便覆盖默认值

也就是说,在ModalViewController内部

public override void ViewWillLayoutSubviews()
{
    base.ViewWillLayoutSubviews();
    View.Frame = new CGRect(0, View.Frame.Height - 200, View.Frame.Width, 200);
}
并且可以避免在父视图控制器中设置帧属性值。就是

pvc.View.Frame = new CGRect(0, this.View.Frame.Height - 200, this.View.Frame.Width, 200);
可以删除

pvc.View.Frame = new CGRect(0, this.View.Frame.Height - 200, this.View.Frame.Width, 200);