0

我在 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 一样工作。它可以从一页滚动到另一页,所以我想我可以将此代码插入到我的其他项目中。

我用applicationDidFinishLaunching等价物替换了它,viewDidLoad并摆脱了AppDelegate处理之window类的东西。然后我改变了 Apple 的initWithPageNumber:方法来引用我的帮助页面,而不是仅仅创建他们的通用视图的实例。

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

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

4

1 回答 1

1

在示例代码中,该applicationDidFinishLaunching:方法设置UIScrollView(和 a UIPageControl,但我们暂时忽略它),然后“加载”前两页。“加载”页面包括将该页面的视图控制器加载到内存中并对其进行缓存。然后,它将控制器的视图作为子视图添加到UIScrollView偏移量中,并根据它的“页码”使用适当的 x。你应该能够在你的viewDidLoad.

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

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

于 2010-09-16T07:18:00.323 回答