我认为两者都不会得到你想要的动画效果。一般来说,我会选择使用 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 的左边界)并进行适当的计算以将“抽屉”组件移动到视图中。这可以是任意的:-)
注意:如果 DrawerView 是 UIViewController / DialogViewController 类型,请使用新的 iOS 5 自定义容器 API,否则你会得到一些严重的异常行为。在此处查看我关于子视图控制器的博客文章:
http://blog.devnos.com/wont-somebody-please-think-of-the-children