2013-10-09 68 views
0

所以我有一個滾動視圖和其他3個視圖作爲子視圖。使用滾動視圖在控制器存儲在數組中的3個子視圖之間切換。在ScrollView中移動子視圖

- (void)viewDidLoad 
{ 
    [self loadData]; 

    self.uiScrollView = [[UIScrollView alloc] initWithFrame:self.view.frame]; 
    [self.uiScrollView setPagingEnabled:YES]; 
    [self.uiScrollView setContentSize:CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height)]; 

    self.uiScrollView.delegate = self; 


    [self.view addSubview:self.uiScrollView]; 

    self.uiPhotoCollectionViewControllers = [[NSMutableArray alloc] init]; 
    int numberOfOtherViews = 3; 
    int subViewOffset = 0; 

    for (int i = 0; i < numberOfCollectionViews; i++) 
    { 
     UIViewController* uiViewController = [[UIPhotoCollectionViewController alloc] initWithData:dataArray]; 
     // add offset to the view of the controller 
     [self.uiScrollView addSubview:uiViewController.view]; 
     [self.uiViewControllers addObject:uiViewController]; 
     uiViewController.view.frame = CGRectOffset(uiViewController.view.frame,subViewOffset,0.0f); 
     subViewOffset = subViewOffset + uiViewController.view.frame.size.width; 
    } 

如果我以後想在切換滾動視圖的中間視圖與第一位的,我將如何去了解這個,不刪除德滾動視圖的子視圖,並替換它們。

回答

0

不可能沒有更換,但您可以通過swaping在self.uiViewControllers陣列的對象這樣

[scrollView.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 

,然後swaping的對象後,你可以通過遍歷整個陣列添加子視圖做到這一點。

+1

我試過這樣做。也許我在某個地方出了問題。刪除後我只是將它們重新添加爲子視圖,並使用exchangeObjectAtIndex方法切換控制器數組中的控制器。 這是否有道理? – Shawn

+0

只是在將它們添加爲子視圖之前進行交換,而不是在將它們添加爲子視圖之後 – 2013-10-09 05:18:25

+0

我創建了一個在控制器數組內交換它們的獨立方法,然後調用另一個方法將它們重新添加爲滾動視圖的子視圖。 這是你的意思甘安? – Shawn

相關問題