NinaPagerView 1.6.3

NinaPagerView 1.6.3

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2018年6月

RamWire 维护。



  • RamWire

image Language Build Status Pod Version Carthage compatible Pod Platform Support  Pod License
🇨🇳中文文档说明

  • NinaPagerView 是一个分段样式,方便您翻页控制器和视图。

功能

  • 低耦合,只需创建您自己的 viewcontrollers 或视图即可!
  • 加载您的 viewcontrollers 或视图。同时不加载。
  • 仅一行代码即可完成任务。
  • 在 TopTab 中编辑所有内容,您可以根据需要自定义视图。
  • 不仅适用于 UIViewController,也适用于 UIView。
  • 选择您喜欢的 NinaPagerStyle。
  • 轻松重新加载标题和对象(视图、控制器和 xibs)。

预览

image image image image image

安装

将类文件夹放入您的Xcode项目中。
您还可以使用cocoapods或Carthage。

使用 CocoaPods

在您的 Podfile 中添加 pod 'NinaPagerView' 并运行 pod install

pod 'NinaPagerView'

使用 Carthage

在您的 Cartfile 中添加以下行

github "RamWire/NinaPagerView"

用法

您需要将 'NinaPagerView.h' (CocoaPods) 或 <NinaPagerViewCarthage/NinaPagerViewCarthage.h> (Carthage) 添加到您的项目中。然后加载代码

NinaPagerView *ninaPagerView = [[NinaPagerView alloc] initWithFrame:pagerRect WithTitles:titleArray WithObjects:objects];
[self.view addSubview:ninaPagerView];

这就完成了!

其他设置和技巧

  • NinaPagerView 中有许多您可以根据需要设置的 属性
  • NinaPagerView 现在支持 自定义顶栏菜单。在 NinaPagerView 中创建自己的视图!(想要了解更多,请阅读示例说明)
  • 您可以通过以下代码设置两个必要的 Array(想要了解更多,请阅读示例说明)。
NSArray *titles = @[
                    @"Dalian",
                    @"Tokyo",
                    @"New York",
                    @"Los Angeles",
                    @"Kyoto",
                    @"Osaka",
                    @"Auckland",
                    @"Miami",
                    @"Houston"
                  ];
NSArray *objects = @[
                      @"FirstView",
                      @"SecondView",
                      @"ThirdView",
                      @"ForthView",
                      @"FifthView",
                      @"SixthView",
                      @"SeventhView",
                      @"EighthView",
                      @"NinthView",
                    ];
  • 如果您控制器没有导航栏或隐藏了导航栏,您需要将 nina_navigationBarHidden 设置为 YES。
ninaPagerView.nina_navigationBarHidden = YES;
  • 控制器或视图创建的上限为 10,如果需要更多,请修改 NinaPagerView 中的 MaxNums
  • 如果您需要将页面推送到包含 NinaPagerView 的控制器,请确保您的 navigationBar 的透明度关闭 的。您可以设置如下:
self.navigationController.navigationBar.translucent = NO;
  • 如果您使用控制器的方式,请确保在 viewWillLayoutSubviews 方法中添加子视图,这不能在 viewDidLoad 方法中工作,您可以在示例代码中找到更多。

NinaPagerViewDelegate

内存管理

  • 如果您关心 VCS 导致大量内存占用,请尝试使用 NinaPagerViewDelegate 代理,默认是加载最近 5 个 VCS,其他的将会被释放。如果您滚动到释放页面,它将再次加载。如果您不使用代理,默认是关闭状态。
- (BOOL)deallocVCsIfUnnecessary {
  return YES;
}

当前页面

  • 通过代理方法获取当前页面和对象,您可以在需要时在这里编写代码。
- (void)ninaCurrentPageIndex:(NSInteger)currentPage currentObject:(id)currentObject lastObject:(id)lastObject {
    NSLog(@"Current page is %li",currentPage);
}

变更记录

v1.6.3

错误修复。

v1.6.2

为 iOS 11 更新了代码,并进行了其他改进。

v1.5.3

添加 topTabScrollHidden 函数。

v1.5.1

添加 自定义顶部标签菜单 函数,自定义您的顶部标签!

v1.4.8

向 NinaPagerView 添加 nina_scrollEnabled 和 nina_autoBottomLineEnable 函数,同时尝试解决某些条件下的 KVO 崩溃问题。

v1.4.6

修复可能导致 NinaPagerView 出现错误位置的bug。

v1.4.5

修复 scrollsToTop 冲突问题。

v1.4.3

添加设置颜色的属性,现在您只需要在 init 方法中设置 frame、titleArray 和 vcsArray。

v1.4.2

增加设置topTab的height和标题字体样式的属性,此外,还能设置将topTab的整个底线下划线隐藏。

v1.4.1

修复了一些bug,现在无需将navigationBar.translucent设置为NO,NinaPagerView会自动完成。

v1.4.0

将许多宏定义更改为NinaPagerView的属性。在不同情况下使用NinaPagerView更加灵活。

v1.3.0

在UIParameter.h中添加NinaDefaultPageIndex,以便选择默认页面。

v1.2.0

在parameter.h中添加LoadWholePage参数,可以设置YES一次性加载所有控制器或视图。
为NinaPagerView添加新的代理方法,可以轻松获取当前页面。

v1.1.2

优化了SlideBlock中的双行标题和详情。

v1.1.1

NinaSlideBlock支持在NinaPagerView中实现两行显示。

v1.1.0

支持navigationBarHidden状态,现在您可以选择是否隐藏navigationBar。

v1.0.0

对一些代码进行了改进,同时为框架带来了一些变化,希望您喜欢:(
(1) 新增了NinaPagerStyle:NinaPagerStyleStateNormal,这是一种没有底部线条或滑动块的样式。如有需要,您可以选择它。
(2) 例子中的数组创建方式已更改,更清晰易懂!
(3) TopTab的高度已经固定为40,如果您想更改它,请设置到UIParameter.h中。
(4) 在NinaPagerStyleSliderBlock中,现在您可以通过设置UIParameter.h来设置块的圆角半径。

v0.9.1

为TopTab的底部线条或滑动块添加了一些参数,现在您可以为项目设置它们的宽度和高度。

v0.8.1

在某些条件下修复了TopTab垂直滚动的问题。

v0.8.0

新增了TopTab样式的选择,现在您可以选择:NinaPagerStyleBottomLineNinaPagerStyleSlideBlock,如图所示。

v0.7.0

如果您认为版本控制(vcs)不适合您的项目,您可以使用视图数组来构建。只需将视图放入数组中。

v0.6.0

支持长标题。

v0.5.2

可以为标题动画设置标题大小(与原始标题比较),命令范围在1到1.5之间。如果不设置,则默认缩放为1.15。

ninaPagerView.titleScale = 1.5;

v0.5.0

如果您想通过IB或自己编写代码来创建VCs,可以将VCs放入数组。您可以根据示例代码创建它们。

反馈

  • 如果在项目中发现错误或有任何建议,希望您可以通过问题或通过电子邮件发送给我 [email protected]

许可证

此项目使用MIT许可证。