【问题标题】:Indentation between pages in UIScrollViewUIScrollView 中页面之间的缩进
【发布时间】:2013-01-06 12:18:11
【问题描述】:

我正在使用启用了分页的 UIScrollView。我的代码基于PageControl example

UIScrollView 中的页面彼此靠近。但是我需要在页面之间添加一些空间(例如在您浏览相机胶卷中的照片时)。有没有办法在页面之间添加一些水平缩进?

【问题讨论】:

    标签: iphone objective-c ios xcode cocoa-touch


    【解决方案1】:

    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 在滚动时不会在页面上正确停止。第二页显示右移 20 个点;
    【解决方案2】:

    您必须使 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 选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      相关资源
      最近更新 更多