如何在UIScrollView中进行没有垂直分页的水平分页

时间:2010-06-10 15:13:00

标签: iphone uiscrollview paging

我现在正在制作数字漫画。 我的应用程序在没有缩放时有水平分页。 但是在缩放时,图片的高度超过了屏幕高度。 因此应用程序具有垂直分页。

但我不需要垂直分页。 我想在zooiming期间进行水平分页而不进行垂直分页。

请教我。

3 个答案:

答案 0 :(得分:13)

这很简单。正如您的朋友建议的那样,您至少需要两个UIScrollView。水平(即分页)需要一个UIScrollView,每个页面需要一个UIScrollView。关键点是(我们将它们命名为scrollHorizontalscrollVertical):

  • scrollHorizontal.frame.height必须等于scrollHorizontal.contentSize.height(否则,您最终会进行垂直分页)
  • scrollVertical:首先,每个页面都有一个。帧宽和contentSize.width应该匹配并且有意义w.r.t.页面的宽度(在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; // not needed but helpful

// Now let's create each page

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);

// Add page to scrollHorizontal

[scrollHorizontal addSubview:scrollPage1];
[scrollPage1 release];

//...add more pages (REMEMBER to set the scroll view's frame.origin.x accordingly for each additional page)

// Set the scrollHoriztonal content size
scrollView.contentSize = CGSizeMake(self.view.bounds.size.width*NUMBER_OF_PAGES, self.view.bounds.size.height);

// Now add the scrollview to self.view; or even self.view = scrollHorizontal, etc.

答案 1 :(得分:-1)

技术上没有垂直分页这样的东西,只有标准API的水平分段。向上/向下滚动,左/右分页略有不同。

在选择uiscrollview并在检查器窗口中编辑其属性后,您应该能够在Interface Builder中禁用垂直滚动。

答案 2 :(得分:-1)

您可以在用户放大时动态设置pagingEnabledNO,然后在缩小时将其设置回YES

查看UIScrollViewDelegate的{​​{3}},了解如何检测缩放。