UIScrollView를 사용하는 응용 프로그램을 만들어 동적으로 생성 된 사용자 지정보기 컨트롤러의 개수를 결정합니다. 불행히도 아래 코드를 실행하면 빈 화면이 표시됩니다. 또한 UIScrollView에 하위 뷰가 추가 된 직후에 삽입 한 nslog 문은 항상 UIScrollView에 하위 뷰가 없음을 나타냅니다. 나는이 문제에 완전히 당황하고 어떤 도움을 주시면 감사하겠습니다.UIScrollVIew에 사용자 지정보기 컨트롤러를 추가 할 수 없습니다.
- (void)loadView
{
[super loadView];
scrollView.pagingEnabled = YES;
viewControllers = [[NSMutableArray alloc] init];
CGRect screenBounds = [[UIScreen mainScreen] bounds];
CGFloat screenScale = [[UIScreen mainScreen] scale];
CGFloat width = screenBounds.size.width * screenScale;
CGFloat height = screenBounds.size.height * screenScale;
scrollView.contentSize = CGSizeMake(width * [routes count], height);
for(int i = 0; i < [arrayWithDataForViewControllers count]; i++)
{
ViewController *controller = [[ViewController alloc] init];
controller.view.frame = CGRectMake(width*i, 20, width, height);
[scrollView addSubview:controller.view];
NSLog(@"SUBVIEWS %d", [[scrollView subviews] count]);
[viewControllers addObject:controller];
}
}
loadView 함수에서 scrollView가 초기화되지 않은 경우가 있습니다. 이것이 바로 하위 뷰에서 0을 보는 이유입니다. –
당신이 옳았습니다. viewDidLoad 코드를 옮겼지만 문제를 해결하지 못했습니다. – InsaneOstrich
UIScrollView를 초기화하는 것은 무엇입니까? 펜촉을 사용하는 경우 IBOutlet을 연결해야합니다. 그렇지 않다면 모든 코드를 다시 loadView로 옮기고 명시 적으로/initWithFrame을 UIScrollView에 할당해야합니다. –