- NinaPagerView 是一个分段样式,方便您翻页控制器和视图。
功能
- 低耦合,只需创建您自己的 viewcontrollers 或视图即可!
- 加载您的 viewcontrollers 或视图。同时不加载。
- 仅一行代码即可完成任务。
- 在 TopTab 中编辑所有内容,您可以根据需要自定义视图。
- 不仅适用于 UIViewController,也适用于 UIView。
- 选择您喜欢的 NinaPagerStyle。
- 轻松重新加载标题和对象(视图、控制器和 xibs)。
预览
安装
将类文件夹放入您的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 更新了代码,并进行了其他改进。
添加 ninaChosenPage 和重新加载数据功能。
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样式的选择,现在您可以选择:NinaPagerStyleBottomLine和 NinaPagerStyleSlideBlock,如图所示。
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许可证。