2011-10-16 55 views
3

目前我有一個包含MKMapView的視圖。我還有一個單獨的UIView(用IB製作),我想滑到現有的視圖上。如何從當前視圖(iPhone)頂部的側面滑動UIView

我想這樣做的方式是從左側滑動視圖,同時減小地圖視圖的大小。

我也希望相反是可能的,這樣視圖將向左滑動並且地圖視圖將擴大以填補空白。

唯一的問題是我希望這是一個不錯的流暢動畫。我知道如何在頂部顯示UIView,然後調整地圖視圖的大小,但是這看起來很笨重。當iAd橫幅在屏幕上和屏幕上滑動時(但地圖視圖的大小與UIView在屏幕上移動的速度相同)時,我會看到更多效果。

對不起,如果這是一件簡單的事情,這是我第一次使用動畫。

在此先感謝。

回答

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]; 

而反過來是相似的,但具有不同的幀大小。

+0

這似乎很好地工作,謝謝。我唯一的問題是,我有一些標籤添加到視圖(IB中),但沒有顯示出來。任何想法爲什麼? –

+0

@Jon:應該可以工作。或者你可以嘗試這個鏈接:http://stackoverflow.com/questions/5392263/how-can-i-slide-text-from-left-to-right-in-iphone – Devang

+0

它似乎是工作,它只是沒有顯示我在IB中創建的視圖。它可能隱藏在我最初的UIView後面嗎?如果是這樣,我怎麼能確保它顯示在上面? –

0

這是我使用UIView animation.You可以根據您的需要更改幀大小。

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) 
相關問題