我正在寻找实现以下方法的方法:
为了说明如何设置,这是我当前的实现:
// Initialise components:
mainScreen = [[UIScreen mainScreen] bounds];
CGFloat screenHeight = mainScreen.size.height-20;
// Scroll View Controller
_scrollControl = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, screenHeight)];
_scrollControl.contentSize = CGSizeMake(320, 2*screenHeight); // Twice as big as the screen size for both views to fit
_scrollControl.backgroundColor = [UIColor clearColor];
_scrollControl.delegate = self;
// Top View
_topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, screenHeight)];
_topView.backgroundColor = [UIColor redColor];
[_scrollControl addSubview:_topView];
// Bottom View
_bottomView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, screenHeight, 320, screenHeight)];
_bottomView.backgroundColor = [UIColor yellowColor];
_bottomView.contentSize = CGSizeMake(320, 2*screenHeight);
_bottomView.delegate = self;
UILabel *imageLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 700)];
imageLabel.backgroundColor = [UIColor greenColor];
[_bottomView addSubview:imageLabel];
[_scrollControl addSubview:_bottomView];
// Add to main view
[self.view addSubview:_scrollControl];
我尝试使用委托方法实现所需的效果,但是在切换到底部scrollView之前,我似乎无法阻止“主”scrollView滚动。
答案 0 :(得分:0)
Apple免费提供此功能,所以好消息是你不需要在这里直接编写任何代码(除非你想要一些有点时髦的东西)。通过分页
实现效果scrollView.pagingEnabled = YES;
在此之前,您将需要在主滚动视图中嵌入您的子视图(UIView和UIScrollView)。它们中的每一个应该具有相同的大小或单个页面的大小。所以让我们说主滚动视图是100,100点,我们可以像这样设置它:
CGRect pageRect = CGRectMake(0, 0, 100, 100);
NSInteger pageCount = 2;
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:pageRect];
scrollView.pagingEnabled = YES;
UIView *page1View = [[UIView alloc] initWithFrame:pageRect];
page1View.backgroundColor = [UIColor redColor];
[scrollView addSubview:page1View];
pageRect.origin.x += pageRect.size.width;
UIView *page2View = [[UIView alloc] initWithFrame:pageRect];
page2View.backgroundColor = [UIColor blueColor];
[scrollView addSubview:page2View];
scrollView.contentSize = CGSizeMake(pageRect.size.width * pageCount,
pageRect.size.height);
那应该给你基础知识。正如您所看到的,我们在此示例中将子视图一个接一个地水平放置。我们将内容大小设置为涵盖两个子视图并启用分页。 UIScrollView应该处理其余的事情。
一个值得关注的地方是WWDC会议视图,特别是WWDC 2010的会议视图:会议104 - 使用滚动视图设计应用程序。这有很多关于如何设置滚动视图并真正充分利用它们的信息。
希望这有帮助!
答案 1 :(得分:0)
因此,如果您想使用swift检测它,请使用以下命令:
override func scrollViewDidScroll(scrollView: UIScrollView) {
if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
//reach bottom
}
if (scrollView.contentOffset.y < 0){
//reach top
}
if (scrollView.contentOffset.y >= 0 && scrollView.contentOffset.y < (scrollView.contentSize.height - scrollView.frame.size.height)){
//not top and not bottom
}
}