2010-12-10 86 views
2

我已經在網上搜索過,還沒有找到任何東西。在iPad上,是否有可能,而不是從屏幕上流出,物品「流動」到右側的新列,等等?iPad:桌面視圖可以有多個流動列嗎?

不想:

-------------- top of screen 
01 
02 
03 
04 
05 
-------------- bottom of screen 
06 
07 
08 
09 <-- these items are "scrolled" off the screen 
10 
11 
12 
13 

旺旺:

-------------- top of screen 
01 |06 |11 
02 |07 |12 
03 |08 |13  --> Columns grow to the right 
04 |09 | 
05 |10 | 
-------------- bottom of screen 
+0

這是Apple很想拒絕的那種UI設計。輕輕地踩。 – 2010-12-10 08:25:37

回答

2

想法實驗:使用三個tableviews,但使用相同的數據源/委託。每當一個視圖滾動時(即通過–scrollViewDidScroll:)連線,您還可以用-setContentOffset手動滾動其他視圖到合適的位置。儘管如此,你應該提防可能的通話。我不能保證這會起作用,但這可以儘可能地接近我能想到的。

如果您希望最左側的視圖能夠滾動到底部,或者最右側的視圖滾動到頂部,您可能還想爲特定視圖添加額外的行。

編輯:大多數情況下,它看起來很基礎。我只是試了一下,並沒有太壞。儘管你需要注意一些小怪癖,包括通話和滾動視圖的減速。

對於我前面提到的通知要求,我管理我的辦法解決它通過使用下面的代碼:

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ 
    tableView1.delegate = nil; 
    tableView2.delegate = nil; 
    tableView3.delegate = nil; 
    scrollView.delegate = self; 
} 

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 
{ 
    tableView1.delegate = self; 
    tableView2.delegate = self; 
    tableView3.delegate = self; 
} 

至於減速之後,就沒有這麼多,其他的觀點不會減速和他們一起,但如果你在減速時觸碰其他人的話,那麼這些觀點會有點不可思議。在這種情況下,我沒有嘗試過它是否能夠100%地工作,但是您應該嘗試從here開始編碼,以便在再次拖動它時停止減速停止。

+0

這是我想到的那種解決方案,除了動態地做。也就是說,一旦某個表格在不滾動的情況下保存了可以放入的最大數量的項目,請在最後一個表格的右側創建一個新項目並開始填充它。 – 2010-12-10 07:32:04

2

你必須編寫自己的自定義類來做到這一點。表格視圖的整個觀點是將列表保留在單個垂直列中。這就是爲什麼iPad上的分割視圖效果很好;您可以一次顯示兩個層次的數據層次結構。