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