【问题标题】:How to slide UIView from side on top of current view (iPhone)如何从当前视图顶部的侧面滑动 UIView (iPhone)
【发布时间】:2011-12-08 18:02:32
【问题描述】:

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

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

我还希望相反的情况成为可能,这样视图将滑向左侧,地图视图将扩大以填补空白。

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

对不起,如果这是一件简单的事情,这是我第一次使用动画。

提前致谢。

【问题讨论】:

    标签: iphone animation uiview mkmapview


    【解决方案1】:

    最简单的方法是使用 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];
    

    反之亦然,只是帧大小不同。

    【讨论】:

    • 这似乎很好用,谢谢。我唯一的问题是我添加到视图中的一些标签(在 IB 中)没有显示出来。知道为什么吗?
    • @Jon :它应该可以工作。或者你可以试试这个链接:stackoverflow.com/questions/5392263/…
    • 它似乎工作正常,只是没有显示我在 IB 中创建的视图。是否有可能隐藏在我最初的 UIView 后面?如果是这样,我怎么能确保它显示在顶部?
    • 我设法通过将我的视图添加为子视图来使其工作。感谢您的帮助。
    【解决方案2】:

    这是我使用 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)
    

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2021-11-28
      相关资源
      最近更新 更多