2011-08-03 37 views
0

我有UIScrollView和五個UIViewController s A,B,C,D,E。 要在滾動視圖中顯示的視圖的順序取決於某些先決條件(例如,某一天它可能是B,A,E,D,C以及下一個E,A,D,B,C等等上)。將視圖動態分配到滾動視圖

如何跟蹤要顯示哪個UIViewController(如每個UIViewController的標籤可以存儲在數組中並更新)? 是否有可能以上面所示的動態方式將視圖分配給滾動視圖?

+0

你會被顯示在視圖控制器是什麼數據? ? – mayuur

+0

表格視圖很常見..有些會有額外的分段控件和按鈕..會有關係嗎? – Prathiba

+0

是的,我的意思是如果數據在不同視圖之間非常相似,那麼只需使用五個UIViews而不是UIViewControllers。 – mayuur

回答

0

你想弄清楚5種視圖控制器的排列方式嗎? 也許它有助於使用素數的屬性。

它取決於你想要的排列的數量。 但由於只有5個視圖控制器,所以不能超過5個! = 120排列 5的好處在於它是素數

所以如果您計算(n * a)%5,其中a是從0到4的常數,而n是從1到5的變量你得到這樣的表格:

a==0, 0,0,0,0,0 
a==1, 1,2,3,4,0 
a==2, 2,4,1,3,0 
a==3, 3,1,4,2,0 
a==4, 4,3,2,1,0 

正如你所見,這是5個完全不同的排列,其中每個數字只出現一次。

所以,如果你想擁有120個排列

只是申請一個常數B(0-4),並計算(N * A + B)5%

,那麼你會得到前一個結果的5倍,即125,但有一些重複,那麼最終的結果將是120個排列。

所以,你必須做的唯一的事情就是確定A和B的前提

,並應用以下代碼:

int result = (n*a + b)%5; 
static UIView *addedView = nil; 
if(addedView != nil) 
    [addedView removeFromSuperview]; 

switch(result) 
{ 
    case 0: 
     [self.scrollView addSubview:VCA.view]; 
     addedView = VCA.view; 
     break; 
    case 1: 
     [self.scrollView addSubview:VCB.view]; 
     addedView = VCB.view; 
     break; 

    //and so on... 
} 

hope it helps 
+0

我會嘗試檢查它...無論如何感謝! :) – Prathiba

相關問題