UIScrollView和UIViews
问题描述:
我想在用户滚动浏览UIScrollView控件时使用UIScrollView来显示多个UIViews。我并不担心显示分页。UIScrollView和UIViews
我已经设法实现了一些,但没有按照我希望的方式工作。
目前:
我有3个ViewControllers不同的笔尖文件。根视图控制器是具有UIScrollView的控制器,用于加载视图控制器的其余部分。
NSMutableArray *controllers = [[NSMutableArray alloc] init];
for (unsigned i = 0; i < kNumberOfPages; i++) {
[controllers addObject:[NSNull null]];
}
self.viewControllers = controllers;
[controllers release];
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * kNumberOfPages, scrollView.frame.size.height);
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;
pageControl.numberOfPages = kNumberOfPages;
pageControl.currentPage = 0;
[self loadScrollViewWithPage:0];
- (void)loadScrollViewWithPage:(int)page {
if (page == 0) {
PageTwo *controller2 = [viewControllers objectAtIndex:page];
if ((NSNull *)controller2 == [NSNull null]) {
controller2 = [[PageTwo alloc] initWithPageNumber:page];
[viewControllers replaceObjectAtIndex:page withObject:controller2];
[controller2 release];
}
// add the controller's view to the scroll view
if (nil == controller2.view.superview) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller2.view.frame = frame;
[scrollView addSubview:controller2.view];
}
}
if (page == 1) {
// replace the placeholder if necessary
NewController *controller = [viewControllers objectAtIndex:page];
if ((NSNull *)controller == [NSNull null]) {
controller = [[NewController alloc] initWithPageNumber:page];
[viewControllers replaceObjectAtIndex:page withObject:controller];
[controller release];
}
// add the controller's view to the scroll view
if (nil == controller.view.superview) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}
}
这一切都很好...但是,我想要它做的是先加载根部笔尖。但我不知道如何去做这件事。我知道我必须将页数增加到3,但是当我初始化控制器时,我不知道如何告诉它页面== 0应该是当前视图。
任何想法?
更新:
唉,我忽略了的东西..没有注意到,如果在0水平不指定页面它只是显示当前视图哈!
傻我。
答
我忽略了一些东西..没有注意到,如果不指定一个页面在0级,它只是显示当前视图哈!
这是否意味着你解决了你的问题?我使用http://idevzilla.com/2010/09/16/uiscrollview-a-really-simple-tutorial/设置我的第一个uiscrollview – 2011-04-11 01:10:21