SCSafariPageController 1.0.6

SCSafariPageController 1.0.6

测试测试
语言语言 Obj-CObjective C
许可协议 MIT
发布最新发布2018年4月

Stefan Ceriu维护。



SCSafariPageController

SCSafariPageController 是一个页面视图控制器组件,模仿了在 Mobile Safari 的标签切换器中的行为,并用作 SCPageViewController 的演示。

功能

  • 可以实现类似 Safari 的页面缩放、部分重叠和倾斜
  • 可以放大并聚焦到任何页面,并动画化布局变更
  • 允许在一次或多次页面上滑动删除
  • 在滑动删除的同时,根据页面总数动态调整项目间距和页面角度
  • 当滚动超出其范围时,增加页面角度
  • 支持增量更新

以及其他所有 SCPageViewController 的优点。

实现细节

SCSafariPageController 是建立在 SCPageViewController 之上的,使用自定义页面布局器来获得所需的效果。

它在基于滚动视图的 SCSafariPageWrapperViewController 中包装视图控制器,以获得滑动删除功能,然后根据页面总数和内容偏移量应用变量项目间距和子层转换(角度、视点和缩放)到页面上。

使用

  • 创建一个新的实例并注册为其数据源,可选地委托
    self.safariPageController = [[SCSafariPageController alloc] init];
	[self.safariPageController setDataSource:self];
	[self.safariPageController setDelegate:self];
  • 实现SCSafariPageControllerDateSource协议以定义页面的总数以及每个页面所用的视图控制器
- (NSUInteger)numberOfPagesInPageController:(SCSafariPageController *)pageController;

- (UIViewController *)pageController:(SCSafariPageController *)pageController viewControllerForPageAtIndex:(NSUInteger)index;
  • 可选地监听以下任何代理事件
- (void)pageController:(SCSafariPageController *)pageController didShowViewController:(UIViewController *)controller atIndex:(NSUInteger)index;

- (void)pageController:(SCSafariPageController *)pageController didHideViewController:(UIViewController *)controller atIndex:(NSUInteger)index;
			  
- (void)pageController:(SCSafariPageController *)pageController didNavigateToOffset:(CGPoint)offset;
   
- (void)pageController:(SCSafariPageController *)pageController didNavigateToPageAtIndex:(NSUInteger)pageIndex;

- (void)pageController:(SCSafariPageController *)pageController willDeletePageAtIndex:(NSUInteger)pageIndex;

- (void)pageController:(SCSafariPageController *)pageController didDeletePageAtIndex:(NSUInteger)pageIndex;
  • 放大和缩小
- (void)zoomOutAnimated:(BOOL)animated completion:(void(^)())completion;

- (void)zoomIntoPageAtIndex:(NSUInteger)index animated:(BOOL)animated completion:(void(^)())completion;
  • SCSafariPageController还支持通过其活动布局器可自定义的动画增量更新
	[self.safariPageController insertPagesAtIndexes:(NSIndexSet *)indexes animated:(BOOL)animated completion:^(void)completion];

	[self.safariPageController deletePagesAtIndexes:(NSIndexSet *)indexes animated:(BOOL)animated completion:^(void)completion]

	[self.safariPageController reloadPagesAtIndexes:(NSIndexSet *)indexes animated:(BOOL)animated completion:^(void)completion]

	[self.safariPageController movePageAtIndex:(NSUInteger)fromIndex toIndex:(NSUInteger)toIndex animated:(BOOL)animated completion:^(void)completion]

更多使用示例,请查看包含的示例项目(code>pod try SCSafariPageController

许可

SCSafariPageController是在MIT许可(MIT)下发布的(见LICENSE文件)

联系

任何建议或改进都欢迎,如果您将此组件用于已发布的应用,我也想了解。请随时与我联系:[email protected] 或 @stefanceriu