CXSwipeNavigation
CXSwipeNavigation 是一系列类,允许您在 UITableView
和 UICollectionView
之间垂直滑动。使用交互式变换 API 以实现可逆性。
1. 将您的 UITableViewController 和 UICollectionViewControllers 分别作为 CXSwipeTableViewController 和 CXSwipeCollectionViewController 的子类构建。
MYTableViewController.h
@interface MYTableViewController : CXSwipeTableViewController
// ...
@end
MYCollectionViewController.h
@interface MYCollectionViewController : CXSwipeCollectionViewController
// ...
@end
2. 使用 CXSwipeNavigationController 作为您的主要导航控制器并设置数据源。
MYAppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
self.viewControllers = @[[MYTableViewController alloc] init], [MYTableViewController alloc] init], [MYCollectionViewController alloc] init], [MYCollectionViewController alloc] init]];
self.navigationController = [[CXApplicationViewController alloc] initWithRootViewController:self.viewControllers.firstObject];
self.navigationController.dataSource = self;
//...
}
3. 在 CXSwipeNavigationControllerDataSource 中实现这些方法。
MYAppDelegate.m
- (NSUInteger)numberOfViewControllersForSwipeNavigationController:(CXSwipeNavigationController *)navigationController
{
return self.viewControllers.count;
}
- (UIViewController *)swipeNavigationController:(CXSwipeNavigationController *)navigationController viewControllerAtIndex:(NSUInteger)index
{
return self.viewControllers[index];
}
另外,您可以通过调整 translationThreshold
和 velocityThreshold
属性来微调过渡,以避免意外的过渡。
待办事项
- 过渡取消后滚动未重新启用
- 添加示例项目