如何在当前视图(iPhone)的顶部滑动UIView

时间:2011-10-16 14:25:56

标签: iphone animation uiview mkmapview

目前我有一个包含MKMapView的视图。我还有一个单独的UIView(Made in IB),我想滑到现有视图上。

我想这样做的方法是从左侧滑动视图,同时缩小地图视图的大小。

我也想要反过来,这样视图将向左滑动,地图视图将展开以填补空白。

唯一的问题是我希望这是一个很好的平滑动画。我知道如何在顶部显示UIView,然后调整地图视图的大小,但这看起来很笨重。我更喜欢你在iAd横幅在屏幕上和屏幕上滑动时看到的效果(但是地图视图的调整大小与UIView在屏幕上移动的速率相同)。

很抱歉,如果这是一件简单的事情,这是我第一次使用动画。

提前致谢。

2 个答案:

答案 0 :(得分:8)

最简单的方法是使用UIView动画方法。像这样:

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    slideInView.frame = CGRectMake(0,0,320,20);
    mapView.frame = CGRectMake(0,20,320,460);
    [UIView commitAnimations];

反之亦然,但框架大小不同。

答案 1 :(得分:0)

这是我使用UIView动画完成的。您可以根据需要更改帧大小。

self.mapView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 350)


 slideInView.frame = CGRect(x: 0, y: -320, width: self.view.frame.size.width, height: 250)
      UIView.animate(withDuration: 1.0, delay: 0.1, options: [.curveEaseIn] , animations: {
           self.slideInView.frame = CGRect(x: 0, y: 64, width: self.view.frame.size.width, height: 250)
      })
      {(BOOL) in}

self.view.addSubview(slideInView)