我现在正在制作数字漫画应用。 当不进行缩放时,我的应用具有水平翻页功能。 但是当缩放时,图片的高度超过了屏幕高度。 因此,应用程序需要垂直分页。
但是我不需要垂直分页。 我想在缩放时仍然保持水平分页而没有垂直分页。
请教我如何实现。
我现在正在制作数字漫画应用。 当不进行缩放时,我的应用具有水平翻页功能。 但是当缩放时,图片的高度超过了屏幕高度。 因此,应用程序需要垂直分页。
但是我不需要垂直分页。 我想在缩放时仍然保持水平分页而没有垂直分页。
请教我如何实现。
这很简单。就像你的朋友建议的那样,您至少需要两个UIScrollView
,一个用于水平(即分页),另一个用于每个页面。关键点是(我们将它们命名为scrollHorizontal
和scrollVertical
):
scrollHorizontal.frame.height
必须等于scrollHorizontal.contentSize.height
(否则,您将得到垂直分页)scrollVertical
:首先,您将为每个页面创建一个scrollVertical
。框架宽度和contentSize.width
应该匹配并与页面的宽度相符(在您的scrollHorizontal
中)。当然,框架高度不应超过scrollHorizontal.contentSize.height
。示例代码:
UIScrollView scrollHorizontal = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
scrollHorizontal.pagingEnabled = YES; scrollHorizontal.directionalLockEnabled = YES; // 不是必需的,但有帮助
// 现在让我们创建每一页
UIScrollView *scrollPage1 = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
[scrollPage1 addSubview:theContentViewForPage1];
scrollPage1.contentSize = CGSizeMake(self.view.bounds.size.width, theContentViewForPage1.bounds.size.height);
// 将页面添加到scrollHorizontal
[scrollHorizontal addSubview:scrollPage1]; [scrollPage1 release];
//...添加更多页面(记得为每个附加页面设置scrollview的frame.origin.x)
// 设置scrollHoriztonal内容大小 scrollView.contentSize = CGSizeMake(self.view.bounds.size.width*NUMBER_OF_PAGES, self.view.bounds.size.height);
// 现在将滚动视图添加到self.view;或甚至self.view = scrollHorizontal等。
从标准API来看,技术上并不存在所谓的垂直分页,只有水平分页。上下滚动是滚动,而左右分页则略有不同。
在选择uiscrollview并在检查器窗口中编辑其属性后,您应该能够在Interface Builder中禁用垂直滚动。
当用户放大缩小时,您可以动态地将pagingEnabled
设置为NO
,然后在缩小时将其设置回YES
。
查看文档了解如何检测缩放的UIScrollViewDelegate
。