UIModalPresentationPageSheet的位置?还是UIPopover?

时间:2012-01-03 22:09:58

标签: uiview uiviewcontroller xamarin.ios modalviewcontroller uipopover

注意:使用Monotouch并以编程方式执行所有UI。

大家好,

我有一个问题。

我有这个主要的UIViewController对象,里面有2个UIVIews。这些视图将在某些设备中执行命令等。我打算做一些菜单,左侧出现滑块效果,如下图所示。在这个菜单中,用户将选择一些按钮,这将改变另外两个UIViews。

这是我的问题:

我打算将模态视图控制器用作UIModalPresentationPageSheet,但它如何能够在屏幕的中心出现。我想把它放在左侧的中心。我怎样才能改变它?

如果不可能,我应该使用UIPopover吗?

下面的图片

enter image description here

谢谢。

Lyniker

1 个答案:

答案 0 :(得分:1)

我认为你不会得到你想要的动画效果。一般来说,我会选择使用UIView动画在视图中滑动:

if(IsDrawerVisible == false) {
    UIView.Animate(0.5, () => {

        DrawerView.Frame = new RectangleF(
            this.View.Bounds.Left + 300, 
            DrawerView.Frame.Y, 
            DrawerView.Frame.Width, 
            DrawerView.Frame.Height);

    }, UIViewAnimationOptions.CurveEaseIn); 
}
else {
    // Move the frame of the DrawerView by subtracting from Frame.X
}

当然你需要一个参考点(通常是父UIView的左边界)并进行适当的计算以将“Drawer”组件移动到视图中。这可以是任意的: - )

注意:如果DrawerView的类型为UIViewController / DialogViewController 使用新的iOS 5自定义包含API,否则您将获得一些非常不稳定的行为。请在此处查看有关子视图控制器的博客文章:

http://blog.devnos.com/wont-somebody-please-think-of-the-children