2011-08-24 19 views
2

我正要實現一個表格視圖的行爲,如用於iPhone的Twitter應用程序的某個部分中使用的行爲,恰恰我說的是顯示的桌面視圖當在地理定位的推文中,我點擊推文下顯示的位置。 。 。這裏是一些圖片只是爲了給它一看:UITableView的實現「如何」(就像在Twitter的應用程序的iPhone)

Image

Image 2

,你可以看到該表視圖有下的背景(實際上是地圖),但它不只是一個背景的UIView (或Mapview),因爲如果滾動即將「反彈」,表格視圖會自己上下拖動它。 。 。它肯定不是頁眉/頁腳,因爲表格會浮在上面。 。那麼,你有沒有關於如何實現該表視圖的想法?它可能是一個web視圖?


編輯:我找到了解決辦法,並張貼了下去

回答

0

好吧,我只是想通了。 。這很容易。 。 。並且都是關於使用tableview的第一行,必須隱藏才能顯示下面的圖像,而scrollview委託必須在拖動方向停止時用tableview拖動底層圖像。 。 。這裏是Xcode項目你給它一個嘗試:)

http://cl.ly/9bje

0

只是tableview中和的MapView添加到滾動視圖,你應該準備就緒。

//CREATE THE SCROLL VIEW 
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 300)]; 
scrollView.delegate = self; 
scrollView.backgroundColor = [UIColor grayColor]; 
scrollView.contentSize = CGSizeMake(320, 650); 

//ADDING TABLE VIEW 
CGRect cgRct = CGRectMake(0, 0, 320, 600);   
tblSimpleTable = [[UITableView alloc] initWithFrame:cgRct style:UITableViewStyleGrouped];  
tblSimpleTable.delegate = self; 
tblSimpleTable.dataSource = self; 
    [scrollView addSubview:tblSimpleTable]; 

    //ADDING MAP VIEW 
myMap = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; 
myMap.delegate = self; 
[scrollView addSubview:myMap]; 


self.view = scrollView; 
+0

OBS:在'UIScrollView'類引用蘋果公司規定,你不應該嵌入'UIWebView'或'UITableView'對象在'UIScrollView'。如果這樣做,可能會導致意外的行爲,因爲兩個對象的觸摸事件可能混淆並被錯誤地處理。 –

+0

它的工作部分,現在我有tableview下的mapview,如果我拉下tableview,它顯示mapview完全放下,但比它當我從屏幕上拉下手指再次反彈。 。 。表格視圖不是「自由」地圖視圖上的「浮動」,這正是我無法重現的內容:( –

+0

它在所有設備上都適用於我,並且Apple不會明確限制這種用途。 – TommyG

0

也許你可以使用UIView動畫。

您在與表格視圖相同的高度添加mapview,但在界面構建器中將其alpha設置爲0。

之後,你可以做跟隨你IBAction爲方法:

 [UIView beginAnimations:@"displayMapView" context:nil]; 
    [UIView setAnimationDuration:0.3]; 
    mapview.alpha = 1; 
    CGRect tableviewFrame = tableview.frame; 
    tableview.origin.y += 200; // Height of your map view 
    tableview.frame = tableviewFrame; 

    [UIView commitAnimations]; 

這應該這樣做!

或者你可以嘗試在你(的UITableViewCell *)的tableView財產以後這樣的:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath:

IWebView* webView = [[UISynchedWebView alloc] initWithFrame: 
          CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.height)]; 
webView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 
webView.tag = 1001; 
webView.userInteractionEnabled = NO; 
webView.delegate = self; 
[cell addSubview:webView]; 

並加載谷歌地圖的請求或者可能直接就把你你的單元格中的mapview,還沒有嘗試過。

+0

感謝您的回答,但這不是我正在尋找的內容,您提供的代碼是一個動畫,它只是通過更改tableview的位置,在動畫的tableview中顯示一個mapview,桌面視圖只是坐在mapview上的twitter應用程序,並且可以自由地浮在上面......這就是我無法再現的行爲......只需在您的Twitter應用程序上試試就可以了!)! –

+0

你用作單元視圖的webview/mapview呢? –

0

看看three20庫。從GitHub在https://github.com/facebook/three20

在此框架下 http://three20.info

和下載源代碼有實現TTTableViewDragRefreshDelegate一類名爲TTTableViewController。

更多,有一個示例應用程序TTTwitter使用這個類!

您可以從該子類開始實現您需要的所有功能!

相關問題