MSSTabbedPageViewController 0.3.11

MSSTabbedPageViewController 0.3.11

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
Released最后一次发布2017年4月

Merrick Sapsford维护。




MSSTabbedPageViewController现已弃用,并提供一个新形式的Swift组件Tabman。遗憾的是,它不能与Objective-C兼容。

还有一个独立的组件Pageboy可供使用,它提供了MSSTabbedPageViewController中的UIPageViewController增强功能以及更多。

MSSTabbedPageViewController

MSSTabbedPageViewController

MSSTabbedPageViewController是一个UIViewController,提供了一个简单易用的带有滚动标签条的页面视图控制器。它还包括一个为UIPageViewController提供的包装器,该包装器提供了改进的数据源和代理方法。

示例

要运行示例项目,请克隆仓库并构建项目。Objective-C和Swift项目都有示例。

安装

MSSTabbedPageViewController通过CocoaPods提供。要安装它,只需在Podfile中添加以下行:

pod 'MSSTabbedPageViewController'

然后运行pod install

使用方法

要使用标签页视图控制器,简单地创建一个继承自MSSTabbedPageViewControllerUIViewController。然后实现以下数据源方法:

// array of view controllers to display in page view controller
- (NSArray *)viewControllersForPageViewController:(MSSPageViewController *)pageViewController;

如果您正在使用(如示例项目所示),可以将标签栏嵌入到导航栏中。只需将导航控制器中的UINavigationBar类的属性设置为MSSTabNavigationBar,导航栏就会附着到视图控制器上。

要将标签栏视图手动附加到MSSTabbedPageViewController

  • MSSTabbedPageViewControllertabBarView属性设置为MSSTabBarView实例(注意:tabBarView是弱引用且为IBOutlet)。
  • MSSTabBarView实例的dataSourcedelegate属性设置为MSSTabbedPageViewController(两者都是可IBOutlet的)。

要自定义标签栏中标签的内容,可以重写以下内容:

- (void)tabBarView:(MSSTabBarView *)tabBarView
       populateTab:(MSSTabBarCollectionViewCell *)tab
           atIndex:(NSInteger)index;

页面视图控制器增强

MSSPageViewController是UIPageViewController的UIViewController包装器,它提供了更简单的数据源和增强的代理方法。数据源方法如上所述,包含在MSSTabbedPageViewControllerDataSource中。

MSSPageViewControllerDelegate 提供的代理方法如下:

- (void)pageViewController:(MSSPageViewController *)pageViewController
     didScrollToPageOffset:(CGFloat)pageOffset
                 direction:(MSSPageViewControllerScrollDirection)scrollDirection;

当用户将页面视图控制器滚动到特定偏移时被调用,类似于 scrollViewDidScroll。pageOffset 维护当前页面位置并提供一个滚动方向。

- (void)pageViewController:(MSSPageViewController *)pageViewController
           didScrollToPage:(NSInteger)page;

当页面视图控制器完成滚动到新页面时被调用。

外观

MSSTabBarView 提供以下自定义外观的属性,包括:

  • sizingStyle - 是否应调整标签栏的大小以适应其标签或平均分配标签大小。
  • tabStyle - 用于标签的样式,可以是 MSSTabStyleText 用于文本或 MSSTabStyleImage 用于图片。
  • indicatorStyle - 用于当前标签指示器的样式。
  • indicatorAttributes - 当前标签指示器的外观属性。
  • tabAttributes - 标签的外观属性。
  • selectedTabAttributes - 被选标签的外观属性。
  • selectionIndicatorTransitionStyle - 选择指示器的过渡样式。
  • MSSTabTransitionStyleProgressive 用于标签之间的逐渐过渡。
  • MSSTabTransitionStyleSnap 用于过渡期间在标签间捕获。
  • 使用 setTransitionStyle: 设置 selectionIndicatorTransitionStyletabTransitionStyle
  • tabTransitionStyle - 用于标签的过渡样式。

要求

支持 iOS 8 及以上版本。

作者

Merrick Sapsford

邮箱:[email protected]