2012-07-26 2 views
0

스크롤 뷰에 하위 뷰 추가 for 루프 내 배열 요소의 수에 따라 내 scrollview에 하위 뷰를 추가합니다. 컨테이너 뷰에는 추가 하위 뷰가 있습니다. 문제는 첫 번째 컨테이너 뷰에만 하위 뷰를 추가하고 새 뷰를 추가했지만 세 번째 뷰는 추가되었습니다. 하위 뷰 프레임을 확인했지만 여전히 작동하지 않는 것 같습니다.추가 subview

CGFloat contentOffset = 0.0f; 
//add tej views one by one to scrollview 

for (NSString *packageType in packageTypesArray) 
{ 

    CGRect lvPackageContainerFrame = CGRectMake(contentOffset, 0.0f,scrollView.frame.size.width,scrollView.frame.size.height); 

    LVPackageContainer *lvPackageContainer = [[LVPackageContainer alloc] initWithFrame:lvPackageContainerFrame]; 

    NSLog(@"Frame %@",NSStringFromCGRect(lvPackageContainerFrame)); 
    lvPackageContainer.packageType = packageType; 
    [packageContainersArray addObject:lvPackageContainer]; 

    UIImageView *backgroundImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 264, 314)]; 
    NSLog(@"BackgroundImage %@",backgroundImage); 
    backgroundImage.backgroundColor = [UIColor redColor]; 
    [backgroundImage setImage:[UIImage imageNamed:@"shadowBackground.png"]]; 
    backgroundImage.center = lvPackageContainer.center; 
    [lvPackageContainer addSubview:backgroundImage]; 


    [scrollView addSubview:lvPackageContainer]; 

    contentOffset += lvPackageContainerFrame.size.width; 
    scrollView.contentSize = CGSizeMake(contentOffset, scrollView.frame.size.height); 

} 
+0

내가 줄을 삭제하는 경우 backgroundImage.center = lvPackageContainer.center ; 보기가 추가되지만 센터를 찾기 위해 정확한 좌표를 설정해야합니다. 센터의 문제점은 무엇입니까? –

답변

1
backgroundImage.center = CCGPointMake(lvPackageContainerFrame.size.width/2, lvPackageContainerFrame.size.height/2); 

당신이 하위 뷰를 추가하는 경우, 시스템 좌표는 (당신이 두 번째 뷰의 중심을 설정하면,이 {480,240}을 같은 될 것입니다 귀하의 경우에는 부모보기

부터 시작이다 당신이보기의 중심을 얻을 때 , 그것은 실제로 프레임에서 계산 :보기를 가정하면 그래서 아이폰에서 전체 화면) , 당신은 실제로 2

업데이트 페이지의 하위 뷰 볼 수있는 3 일 개 하위 뷰 값 :

center.x = (frame.origin.x + frame.size.width)/2; 
center.y = (frame.origin.y + frame.size.height)/2; 

따라서 두 번째보기 CGRectMake(320, 0, 320, 480)와 가정, 그것의 중심

center.x = (320 + 320)/2; 
center.y = (0 + 480)/2; 

그래서 당신의 서브 뷰가 두 번째보기의 {480,240}에서 중심이 될 것입니다 될 것입니다.

당신이 그것을이있는 ScrollView에 비해, 하위 뷰는 당신이 제 3 관점에 볼 수 {(320+480),(0+240)},에있을 것입니다 변환하면,하지 2 일

+0

네,하지만 컨테이너 뷰의 좌표가 ok 인 경우 그 중 하나에 뷰를 추가하려고하면 cgPoint (0,0)가 부모 뷰에 정확히 상대적인 컨테이너 view.why 컨테이너의 상대 경로입니다. view.center 실패 여전히 mysery입니다 –

+0

내 대답을 업데이트했습니다. – Hanon

관련 문제