如何从 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?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UI Test 访问 Apple Id“登录”对话框?
git--------------vue+element-ui实现分页效果-------------劉