【发布时间】:2013-01-06 12:18:11
【问题描述】:
我正在使用启用了分页的 UIScrollView。我的代码基于PageControl example。
UIScrollView 中的页面彼此靠近。但是我需要在页面之间添加一些空间(例如在您浏览相机胶卷中的照片时)。有没有办法在页面之间添加一些水平缩进?
【问题讨论】:
标签: iphone objective-c ios xcode cocoa-touch
我正在使用启用了分页的 UIScrollView。我的代码基于PageControl example。
UIScrollView 中的页面彼此靠近。但是我需要在页面之间添加一些空间(例如在您浏览相机胶卷中的照片时)。有没有办法在页面之间添加一些水平缩进?
【问题讨论】:
标签: iphone objective-c ios xcode cocoa-touch
在PhoneContentController.m中找到方法loadScrollViewWithPage:(int)page,看看这一行:
frame.origin.x = frame.size.width * page;
它是通过内容的宽度*页面的数量来设置内容框架在scrollView中的x位置。因此,如果您想在内容之间添加排水沟,您可以执行以下操作:
int xOffset = 20;
frame.origin.x = (frame.size.width * page) + xOffset;
【讨论】:
您必须使 scrollView 的框架更宽,以便它向屏幕的左侧和右侧延伸间隙/2 个像素。
CGFloat gap = 20.0; //20 pixels spacing between pages
CGRect frame = self.view.frame;
frame.size.width += gap;
frame.origin.x -= gap/2;
scrollView.frame = frame;
然后您像正常一样添加内容视图控制器,居中并填充屏幕,因此请确保在loadScrollViewWithPage: 中将它们正确偏移gap/2
编辑:如果你只针对 iOS 6,你可以使用 UIPageViewController 和 UIPageViewControllerTransitionStyleScroll 并使用 UIPageViewControllerOptionInterPageSpacingKey 选项。
【讨论】: