如何从 Apple 的示例中实际实现分页​​ UIScrollView?

Posted

技术标签:

【中文标题】如何从 Apple 的示例中实际实现分页​​ UIScrollView?【英文标题】:How to actually implement the paging UIScrollView from Apple's example? 【发布时间】:2010-09-16 04:12:12 【问题描述】:

我在 Apple 的开发人员文档中找到了一个分页 UIScrollView 的示例,这正是我想要的应用程序。我有一个带有“帮助”按钮的主视图,我想呈现一个视图,用户可以通过该视图翻阅以查看所有帮助主题。样本位于:

https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/ScrollViewPagingMode/ScrollViewPagingMode.html%23//apple_ref/doc/uid/TP40008179-CH3-SW1

它的工作原理与宣传的一样,但是,与 Apple 的许多示例一样,它们在 AppDelegate 中执行各种代码。我有自己的AppDelegate,但是我有一个NavigationController 和一个RootView,上面有这个“帮助”按钮。我似乎无法将示例代码集成到我自己的代码中并让它工作。我很确定我不能将他们在AppDelegate 中的代码放在我自己的代码中,但是我不知道如何设置它。

谁能给我举个例子,他们做了我所说的事?

编辑:通过将所有AppDelegate 方法移动到模板提供的UIViewController 并创建一个新的ContentPage UIViewController 来保存,我能够创建一个新项目并让它像Apple 一样工作内容。它可以从一个页面滚动到另一个页面,所以我想我可以将此代码插入到我的其他项目中。

我用等效的viewDidLoad 替换了applicationDidFinishLaunching,并去掉了处理window 等的AppDelegate 东西。然后我更改了 Apple 的 initWithPageNumber: 方法以引用我的帮助页面,而不仅仅是创建其通用视图的实例。

- (id)initWithPageNumber:(int)page 
    NSLog(@"--initWithPageNumber:ContentPage");
    if (self = [super initWithNibName:[NSString stringWithFormat:@"HelpPage%d", page] bundle:nil]) 
        pageNumber = page;
    
    return self;

感谢您的帮助 - 有时让某人告诉您可以继续前进是一件好事!

【问题讨论】:

我面前有 PageControl 示例项目。看起来很简单。您的问题究竟是什么? @Shaggy,我会在早上发布我的代码,但我对如何从另一个视图而不是 appdelegate 实现滚动视图感到困惑。到目前为止,我所做的是将所有 appdelegate 代码放入 UIViewController 子类中,并将 applicationDidFinishLaunching 更改为 viewDidLoad。我最终得到一个空白视图。我的笔尖可能有问题,但非常仔细地对照样品检查了它们。 【参考方案1】:

在示例代码中,applicationDidFinishLaunching: 方法设置了UIScrollView(和一个UIPageControl,但我们暂时忽略它),然后“加载”前两页。 “加载”页面包括将该页面的视图控制器加载到内存中并缓存它。然后它将控制器的视图作为子视图添加到UIScrollView 偏移量,并根据它的“页码”使用适当的 x。您应该可以在您的 viewDidLoad 中完成所有这些操作。

如果您在显示视图控制器的视图时有一个空白视图,那么您没有将子视图正确添加到您的UIScrollView。根据您更改的具体内容,这可能是 (a) 未正确获取 x 偏移量、(b) 未正确设置框架或 (c) 未正确将其添加为子视图的某种组合。

如果您发布一些您自己的代码,我们或许可以对问题有所了解。

【讨论】:

以上是关于如何从 Apple 的示例中实际实现分页​​ UIScrollView?的主要内容,如果未能解决你的问题,请参考以下文章

XCTest 示例,如何从 XCTest 开始?

如何从 UI Test 访问 Apple Id“登录”对话框?

Apple Maps 中 UI 菜单的 iOS 名称

git--------------vue+element-ui实现分页效果-------------劉

SwiftUI:如何在用户滑动时实现分页? (之前使用的 UICollectionView -> 启用分页)

App分页探讨