2013-10-09 2 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; 
    } 

나중에 내가 모든 TEH 스크롤 뷰의 서브 뷰를 제거하고 교체하지 않고 이것에 대해 갈 것 어떻게 첫 번째로 스크롤 뷰의 중간에보기를 전환하고 싶었다면

.

답변

0
교체없이

불가능하지만,이

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

같은 self.uiViewControllers 배열에서 객체를 swaping 다음 개체를 swaping 후 전체 배열을 통과하여 하위 뷰를 추가 할 수 있습니다하여이 작업을 수행 할 수 있습니다.

+1

나는 이것을 시도했다. 어딘가에 잘못 갔을 수도 있습니다. 난 그냥 제거한 후 하위보기로 그들을 다시 추가하고 exchangeObjectAtIndex 메서드를 사용하여 컨트롤러 배열에서 컨트롤러를 전환했습니다. 그 의미가 있습니까? – Shawn

+0

서브 뷰로 추가 한 후 대신 서브 뷰로 추가하기 전에 교환하기 만합니다. –

+0

컨트롤러의 배열 내에서 교환하기위한 별도의 메소드를 작성한 다음, 서브 뷰로 다시 추가하여 뷰를 스크롤하는 다른 메소드를 호출했습니다. 이것이 Gangan입니까? – Shawn