我有UIScrollView
和五個UIViewController
s A,B,C,D,E。 要在滾動視圖中顯示的視圖的順序取決於某些先決條件(例如,某一天它可能是B,A,E,D,C以及下一個E,A,D,B,C等等上)。將視圖動態分配到滾動視圖
如何跟蹤要顯示哪個UIViewController
(如每個UIViewController
的標籤可以存儲在數組中並更新)? 是否有可能以上面所示的動態方式將視圖分配給滾動視圖?
我有UIScrollView
和五個UIViewController
s A,B,C,D,E。 要在滾動視圖中顯示的視圖的順序取決於某些先決條件(例如,某一天它可能是B,A,E,D,C以及下一個E,A,D,B,C等等上)。將視圖動態分配到滾動視圖
如何跟蹤要顯示哪個UIViewController
(如每個UIViewController
的標籤可以存儲在數組中並更新)? 是否有可能以上面所示的動態方式將視圖分配給滾動視圖?
你想弄清楚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
我會嘗試檢查它...無論如何感謝! :) – Prathiba
你會被顯示在視圖控制器是什麼數據? ? – mayuur
表格視圖很常見..有些會有額外的分段控件和按鈕..會有關係嗎? – Prathiba
是的,我的意思是如果數據在不同視圖之間非常相似,那麼只需使用五個UIViews而不是UIViewControllers。 – mayuur