MX分段页控制器 4.0.0

MX分段页控制器 4.0.0

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2019年8月

Maintained by Maxime Epain.



 
依赖
MXSegmentedControl~> 1.1
MXPagerView~> 0.2
MXParallaxHeader~> 1.0
 

MX分段页控制器

CI Status Version Carthage compatible License Platform Dependency Status

MX分段页控制器结合了MXPagerViewMXSegmentedControl以控制页面选择。与MXParallaxHeader的集成允许您在顶部添加流景头部的同时保持可靠的滚动效果。

简单视图 流景视图
Demo Demo

高亮

  • MXSegmentedControl是一个非常可定制的控件。
  • MXParallaxHeader支持任何类型的视图和不同模式。
  • MXPagerView懒加载页面并支持可重用页面注册。
  • 与任何视图层次结构的可靠垂直滚动。
  • 可以使用自定义 jewels 从Storyboard加载视图控制器。
  • 全面文档。

用法

MXSegmentedPager 调用数据源方法来加载页面。

Swift
// Asks the data source to return the number of pages in the segmented pager.
func numberOfPages(in segmentedPager: MXSegmentedPager) -> Int {
    return 10
}

// Asks the data source for a title realted to a particular page of the segmented pager.
func segmentedPager(_ segmentedPager: MXSegmentedPager, titleForSectionAt index: Int) -> String {
    return "Page \(index)"
}

// Asks the data source for a view to insert in a particular page of the pager.
func segmentedPager(_ segmentedPager: MXSegmentedPager, viewForPageAt index: Int) -> UIView {
    let label = UILabel()
    label.text = "Page \(index)"
    label.textAlignment = .center
    return label;
}
Objective-C
#pragma mark <MXSegmentedPagerDataSource>

// Asks the data source to return the number of pages in the segmented pager.
- (NSInteger)numberOfPagesInSegmentedPager:(MXSegmentedPager *)segmentedPager {
    return 10;
}

// Asks the data source for a title realted to a particular page of the segmented pager.
- (NSString *)segmentedPager:(MXSegmentedPager *)segmentedPager titleForSectionAtIndex:(NSInteger)index {
    return [NSString stringWithFormat:@"Page %li", (long) index];
}

// Asks the data source for a view to insert in a particular page of the pager.
- (UIView *)segmentedPager:(MXSegmentedPager *)segmentedPager viewForPageAtIndex:(NSInteger)index {
    
    UILabel *label = [UILabel new];
    label.text = [NSString stringWithFormat:@"Page #%i", index];
    label.textAlignment = NSTextAlignmentCenter;;

    return label;
}

将透视式头部添加到 MXSegmentedPager 是简单直接的,例如:

Swift
let headerView = UIImageView()
headerView.image = UIImage(named: "success-baby")
headerView.contentMode = .scaleAspectFit

let segmentedPager = MXSegmentedPager()
segmentedPager.parallaxHeader.view = headerView
segmentedPager.parallaxHeader.height = 150
segmentedPager.parallaxHeader.mode = .fill
segmentedPager.parallaxHeader.minimumHeight = 20
Objective-C
UIImageView *headerView = [UIImageView new];
headerView.image = [UIImage imageNamed:@"success-baby"];
headerView.contentMode = UIViewContentModeScaleAspectFill;
   
MXSegmentedPager *segmentedPager = [MXSegmentedPager new]; 
segmentedPager.parallaxHeader.view = headerView;
segmentedPager.parallaxHeader.height = 150;
segmentedPager.parallaxHeader.mode = MXParallaxHeaderModeFill;
segmentedPager.parallaxHeader.minimumHeight = 20;

示例

如果您想尝试,只需运行

pod try MXSegmentedPager

或者克隆仓库并从 Example 目录运行 pod install

  • 查看 MXSimpleViewController 以获取标准实现。
  • 查看 MXParallaxViewController 以实现具有透视式头部的分页器。
  • 查看 MXExampleViewController 以获取 MXSegmentedPagerController 子类示例。

此仓库还提供了一个 Swift 示例项目,请参阅 Examples/Swift

安装

MXSegmentedPager 可以通过 CocoaPods 获取。要安装,只需将以下行添加到您的 Podfile

pod 'MXSegmentedPager'

文档

文档可通过 CocoaDocs 获取。

作者

Maxime Epain

Twitter

许可证

MXSegmentedPager 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。