我已经搜索并搜索了这方面的教程,但没有一个是我要找的。我试过 Apple 的样本,但它只是颜色,我不知道如何让它显示。我正在寻找的是一个屏幕,该屏幕将在显示页面控件时进行分页。每次 ScrollView 页面时,我都希望它显示一个带有按钮的完全不同的 View ,很像 iPhone 的主屏幕。我发现下面的示例代码仅适用于图像,但我想修改以使用单独的 View 。请帮忙!谢谢。
- (void)setupPage {
scrollView.delegate = self;
[self.scrollView setBackgroundColor:[UIColor clearColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = YES;
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
NSUInteger nimages = 0;
CGFloat cx = 0;
for (; ; nimages++) {
NSString *imageName = [NSString stringWithFormat:@"image%d.jpg", (nimages + 1)];
UIImage *image = [UIImage imageNamed:imageName];
if (image == nil) {
break;
}
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
CGRect rect = imageView.frame;
rect.size.height = image.size.height;
rect.size.width = image.size.width;
rect.origin.x = ((scrollView.frame.size.width - image.size.width) / 2) + cx;
rect.origin.y = ((scrollView.frame.size.height - image.size.height) / 2);
imageView.frame = rect;
[scrollView addSubview:imageView];
[imageView release];
cx += scrollView.frame.size.width;
}
self.pageControl.numberOfPages = nimages;
[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}
最佳答案
前几天我正在试验这个。我仍然习惯于使用 UIScrollView
,但这里是您可以将 View 添加到 UIScrollView
的方法:
UIView *blueView = [[UIView alloc] init];
blueView.frame = CGRectMake(100, 0, 500, 1024);
blueView.backgroundColor = [UIColor colorWithRed:164.0/256 green:176.0/256 blue:224.0/256 alpha:1];
[scrollView addSubview:blueView];
[blueView release];
UIView *orangeView = [[UIView alloc] init];
orangeView.frame = CGRectMake(700, 0, 500, 1024);
orangeView.backgroundColor = [UIColor colorWithRed:252.0/256 green:196.0/256 blue:131.1/256 alpha:1];
[scrollView addSubview:orangeView];
[orangeView release];
请注意,我在每个 View 的 frame.origin
中设置了 x
值,以便它们彼此相邻。您还必须使用类似 [scrollView setContentSize:CGSizeMake(1200, 1024)];
的内容设置 UIScrollView
的内容大小,以便它知道其 subview 有多大。
然后,如果您需要控制一个 UIPageControl
,您可以将其 numberOfPages
设置为 2(对于上面的示例 scrollview)并更改其 currentPage
属性。您可以通过实现 scrollViewDidEndDecelerating:
来完成此操作,这是 UIScrollViewDelegate
中的一个方法。您可以通过检查其 contentOffset.x
值来检查 ScrollView 位于哪个“页面”。
希望这对您有所帮助!
关于iphone - 如何结合 UIScrollview 和 UIPagecontrol 显示不同的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404209/