• Stars
    star
    187
  • Rank 206,464 (Top 5 %)
  • Language
    Objective-C
  • Created about 9 years ago
  • Updated about 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Most Powerfull NavigationController

CoreNavVC (连载中,关注信息公告牌

成都时点软件4年精华无私奉献开源(注意查看上面commits数量)

Carthage compatible Platform Build Status Join the chat at https://gitter.im/Haneke/HanekeSwift

.Xcode 7.3

.iOS7,如果不使用自定义转场动画,最低可以支持到iOS6

.OC,Swift完美支持




一.为什么要开源?

开源是一种精神,时点软件感谢大家长期的支持与厚爱,无私开源奉献给大家,希望继续能支持我们:(成都时点软件冯成林在中国开发者排行榜单中OC排名国内10位,Swfit排名位于第9位,感谢大家支持!总榜http://githuber.cn/rankObjective-C排行榜Swfit排行榜)

(1). 本框架是Charlin Feng项目必备的基础类框架。
(2). 此框架已经在我自己的10多个正式项目中全面使用。
(3). 多达4年经验精华积累,让框架更稳定好用实用
(4). 关于NavVC的很多功能,我发现是可以全部集成,不过后面发现有很多好用有趣的框架级功能被世界级githuber写的很零散,其实他们都是属于同一个体系的,这也是NavVC出现的必然理由!

注:框架功能太多,这里暂时不一一列表,请详细查看下面功能特性详解。




二.基础篇

提示:在一切开始前,请自定义您的导航控制器比如AppNavVC,继承自CoreNavVC



1.一句代码定制导航条样式

image

[self navBarAppearanceWithBgColor:[UIColor blackColor] textColor:YeahColor titleFontPoint:18 itemFontPoint:15];

其中,BgColor是指导航条的背景色,textColor指文字颜色,titleFontPoint为titleLabel的文字大小,itemFontPoint为左右label文字大小。



2.PopGesture

注:本功能是集成了FDPopGesture,但对源码做了一定的改动
image

. 全自动的PopGesture
. 自动判断并显示PopGesture提示视图


以下是本功能的一些使用细节:
(1)手势提示视图已自动处理,你无需处理。
(2)禁用手势直接在VC调用:
    [self popGestureEnable:NO]; //VC Runtime

(3)启用手势直接在VC调用:

    [self popGestureEnable:YES]; //VC Runtime



3.自动处理Tabbar

你会发现,框架已经自动处理了在Push与Pop过程中tabbar的自动隐藏与显示,应该就是你直接想要的效果。



4.仿QQ无网络实时检测

image
你无需任何操作,框架已经全自动处理了网络实时监控。(你可以断开Mac的Wifi测试)
温馨提示:网络解决方案里面有时点软件落款,别忘了修改,小心扣工资!



5.bgView的处理

这个是一个细节,你需要了解的,在navBar的内部,其实是有很多层,navBar和Tabbar与Toolbar机制不完全一样,单从半透明模糊效果来说,navBar和Tabbar内部有一个BlurView,在BlurView下面还有一个bgView,框架已经将这个bgView完全透明化。方便我们做出一些想要的NavBar颜色出来。如果你想了解细节,可以搜索findBgView方法。



6.拦截Pop返回事件

image

你只需直接实现VC的PopAction的Block即可(VC Runtime)。

    self.PopAction = ^{
        //do sth
    };

注意:

1.此功能一般是保存资料,下单付款页面应用较多。
2.特别强调,你需要配置刚刚的PopGesture,因为这个pop被拦截,但PopGesture仍然是可用的,另忘了禁用与开启PopGesture。




三.扩展篇(灵感来自淘宝iPhone版商品详情)


#### 1.任意View的下拉放大(支持ScrollView,tableview,CollectionView)
![image](https://github.com/CharlinFeng/Resource/blob/master/CoreNavVC/5.gif)

(1)特别说明:其他Github上面有很多关于下拉放大的写法,我之前也写过一个OC版本的(CorePullScale),不过这样做一般有很多问题:
  1. 框架零散,下拉放大其实还是属于我个人认为的导航控制器的一种封装,因为一般下拉放大会关联动态改变导航条的样式,透明度等。
  2. 最致命的是一般写的下拉放大是只考虑如何放大一个imageView,比如有的app的我的页面,他顶部确实有一个头像,不过在imageView上面还有很多其他控件,如用户昵称,年龄,私信等等其他控件。那么单纯实现一个imageView的下拉放大,将仅仅是一个意义不大的功能。

所以本框架的下拉放大,重点是在解决如何集成在合理的位置,同时如果将下拉放大上升到任意View都可以支持下拉放大的需求空间,让下拉放大可以容纳更多的子控件。极大的让需求变化无限可能。 ##### (2)使用细节,想要实现任意View的下拉放大,来自我自己想到的一个想法,当前你如果要实现这个效果,除了使用框架,还必须要注意以下细节,才能出现下拉放大效果,否则可能会达不到你想要的效果。
>1. 需要定制一个view,view最好是autolayout布局。且view内部应该有一个imageView子控件。 >2. 下拉放大的视觉效果应该是imageView产生的,imageView的高度上应该和父类高度有关联 >3. imageView的contentModel最好是设置为AspectFill,并且clipsToBounds. >4. 查看框架演示中,如果想要控件子控件在view中位置固定,直接正确设置对应的autolayout即可。

使用方法如下,请直接在控制器中操作:

//安装 (基于Runtime,请将下拉放大的view直接传递给runtime生成的成员变量nav_topView中即可)
self.nav_topView = [[NSBundle mainBundle] loadNibNamed:@"TopView" owner:nil options:nil].lastObject;
[self addScrollNavbarWithScrollView:self.tableView autoToggleNavbarHeight:240 originHeight:200];

特别注意:

1.下拉放大产生的本质是scrollView动态修改了view的高度,并且触发了view的layoutsubviews。
2.同时请注意下拉放大的view请不要记录成员变量,不需要你手动添加到scrollview中.
3.基于Runtime,请将下拉放大的view直接传递给runtime生成的成员变量nav_topView中即可
4.ScrollView表示需要传入页面中引起下拉放大的scrollview,originHeight表示nav_topView你想要的高度,autoToggleNavbarHeight表示引起导航条由透明到不透明开始变化反应的临界值。

其他重要事项说明:

框架考虑了众多因素,同时这些功能在我自己项目中已经使用了几年,且经历了10来个版本迭代,一切是为了解耦。同时考虑了与我自己其他框架的兼容以及很多各种各样的其他问题,所以框架你还需要做以下操作:

-(void)viewWillAppear:(BOOL)animated{
    
    [super viewWillAppear:animated];
    [self viewWillAppear_scrollNavbar]; //调用代码1
}
-(void)viewWillDisappear:(BOOL)animated{
    
    [super viewWillDisappear:animated];
    [self viewWillDisappear_scrollNavbar];//调用代码2
}
-(void)dealloc{
    [self removeScrollNavbarWithScrollView:self.tableView];//调用代码3
}

注意:

1.如果不调用代码1,你会发现没有下拉放大效果。
2.如果不调用代码2,你会发现在push下级页面会发生非常多的bug。
3.如果不调用代码3,你会发现pop的时侯,程序崩溃,因为框架内部使用了通知与KVO。



2.PopBtn 一键添加Pop按钮


![image](https://github.com/CharlinFeng/Resource/blob/master/CoreNavVC/6.png)
在app中,经常会出现有的页面因为顶部有大图,或者有幻灯,或者有视频,或者其他原因隐藏了导航条,需要手动添加一个PopBtn的情况,这同样是一种和导航控制器有关的一种需求。请在控制器直接执行以下方法即可:
/** 添加pop返回功能 */
[self addPopFunctionWithAnim:YES]; //参数表示是否需要动画



3.动态修改导航条透明度


![image](https://github.com/CharlinFeng/Resource/blob/master/CoreNavVC/6.gif)
注:已经自动实现



4.与PopGesture的兼容


![image](https://github.com/CharlinFeng/Resource/blob/master/CoreNavVC/7.gif)
注:已经自动实现



5.仿淘宝商品详情上拉视差(Runtime)


![image](https://github.com/CharlinFeng/Resource/blob/master/CoreNavVC/8.gif)
注:默认是无视差效果,即上下滚动步调与tableview的offset一致
![image](https://github.com/CharlinFeng/Resource/blob/master/CoreNavVC/9.gif)
注:开启视差效果,即上下滚动步调与tableview的offset不一致。(可配置) 开启视差:
self.enableParallax = YES; //开启视差
self.parallaxValue = 100; //视差值,建议100-250




四.炫酷篇 (多达4-5种炫酷特效,一键调用实现,请持续关注!)

一大波炫酷功能正在路上,连载中,未完待续,敬请期待!!!

More Repositories

1

CorePhotoBroswerVC

快速集成高性能照片浏览器,支持本地及网络相册
Objective-C
1,575
star
2

CoreLock

高仿支付宝解锁
Objective-C
971
star
3

CoreModel

Replace CoreData
Objective-C
727
star
4

PhotoBrowser

Photo Browser Terminator
Swift
613
star
5

CFCityPickerVC

城市选取控制器
Swift
544
star
6

Reflect

Reflection, Dict2Model, Model2Dict, Archive
Swift
307
star
7

CoreStatus

网络状态监听者:可监听2G/3G/4G
Objective-C
220
star
8

CoreLaunch

一键启动动画
Objective-C
214
star
9

CorePagesView

列表滚动视图,性能王者!
Objective-C
189
star
10

CoreRefresh

核心上拉下拉刷新控件,高性能、与众不同!
Objective-C
188
star
11

CFRuntime

重磅推出:Swift版的MJExtension,运行时、反射与一键字典模型互转
Swift
174
star
12

CoreNewFeatureVC

版本新特性
Objective-C
171
star
13

CoreFMDB

One Key Database Operations
Objective-C
157
star
14

Show

信息公示牌
153
star
15

CorePhotoPickerVCManager

大统一的多功能照片选取器,集成拍摄,单选,多选。
Objective-C
150
star
16

CoreJPush

三分钟,五句代码,搞定JPush
Objective-C
125
star
17

CoreArchive

One Key Archive
Objective-C
111
star
18

CoreUmeng

友盟分享封装
Objective-C
103
star
19

CoreHttp

抛弃AFN,网络处理工具类,将网络交互玩于股掌间的利器!
Objective-C
93
star
20

CorePullScale

表格顶部图片下拉放大控件,一键式安装,异常简单
Objective-C
86
star
21

CoreEmotionView

表情键盘
Objective-C
79
star
22

CoreTFManagerVC

强大的键盘躲避管理器,完全解耦版本!
Objective-C
77
star
23

TextField-InputView

UITextField+InputView模式:终结注册类、信息采集类
Swift
68
star
24

CFPPTView

Swift版幻灯,scrollView无限滚动,支持网络和本地图片展示!
Objective-C
66
star
25

CorePPTVC

幻灯终结者:超简单、酷且炫、多样式、自定义!
Objective-C
62
star
26

CoreLabel

为图文混排而设计,超轻量级的Label,轻度使用下是TTTLabel的最佳替换选择
Objective-C
61
star
27

SinaPhotoView

朋友圈相册视图
Swift
57
star
28

CoreCategory

核心分类,基本所有需要用的功能聚集于此!
Objective-C
48
star
29

CFPagesVC

Professional Multi controller management Framework based on Swift
Swift
45
star
30

CoreMediaFuncManagerVC

一句话打电话
Objective-C
39
star
31

CoreBtn

核心按钮,让界面更专业!旨在替代一部份HUD的Btn
Objective-C
36
star
32

TextView-KeyBoard

textView的键盘躲避者,一句代码集成,灵活,好用。
Swift
34
star
33

CorePasswordView

仿支付宝密码视图
Objective-C
32
star
34

CoreHamburgerManagerVC

汉堡菜单,高度解耦,您想怎么搞就怎么搞!
Objective-C
31
star
35

CoreAleetViewManagerVC

高度集成AlertView/ActionSheet,真的只需要一句代码!
Objective-C
26
star
36

CoreSVP

核心提示工具
Objective-C
25
star
37

CoreList

内部研发
Objective-C
21
star
38

ThreeDTouch

3D Touch
Swift
18
star
39

CoreViewNetWorkStausManager

网络状态提示图层管理者,提高你的app的逼格与细节。
Objective-C
17
star
40

CoreException

核心异常捕捉及处理框架
Objective-C
15
star
41

CoreEaseMob

EaseMob
Objective-C
15
star
42

SwipeNavigationVC

向右滑动退出栈顶控制器
Objective-C
15
star
43

CorePickerView

极简选取器,一安一取,简单方便!
Objective-C
13
star
44

ShiDianFontFit

全自动的屏幕字体适配
Objective-C
13
star
45

CoreBlurView

第二牛B的模糊视图(含图片模糊)
Objective-C
12
star
46

CoreReg

正则封装
Objective-C
11
star
47

CorePageControl

高度自定义的pageControl
Objective-C
10
star
48

CFSegmentControl

双版本分段选取控件
Swift
9
star
49

CoreWeb

原生WebView与H5混编,高效,简单!
8
star
50

CoreExtend

Charlin私有框架:核心扩展
Objective-C
7
star
51

CoreSDWebImage

自用图片加载模型,基于SDWebImage封装
Objective-C
6
star
52

CFSnapKit

CFSnapKit
Swift
6
star
53

CoreFormView

表格
Objective-C
6
star
54

AppLaunchADView

AppLaunchADView
Swift
5
star
55

Resource

5
star
56

SwiftExtension

SwiftExtension
Swift
5
star
57

CoreToast

基于CRToast的封装,更好用
Objective-C
5
star
58

CoreCalendar

日历
Objective-C
5
star
59

CoreJazzHandsVC

手势帧动画
Objective-C
5
star
60

KRVideoPlayerVC

KRVideoPlayer 修改版
Objective-C
5
star
61

CoreCapture

仿微信视频拍摄
Objective-C
4
star
62

CoreAddressBookVC

通讯录
Objective-C
4
star
63

CoreTransition

Push切换
Objective-C
4
star
64

CoreGuideView

CoreGuideView
Objective-C
4
star
65

CoreKXMovie

编译KXMovie
C
3
star
66

ShiDianHttp

基于Volley的框架(浓郁的iOS风格)
Java
3
star
67

LocationManager

LocationManager
Swift
3
star
68

AnimTabVC

AnimTabVC
Swift
3
star
69

CoreRAC

集成RAC
Objective-C
3
star
70

CoreMasonry

Masonry
Objective-C
3
star
71

CoreShineLabel

淡入淡出的Label
Objective-C
3
star
72

CountDownLabel

考试系统倒计时
Swift
3
star
73

CoreVideoView

CoreVideoView
Objective-C
3
star
74

Snapkit

Snapkit
Objective-C
2
star
75

ImagePicker

ImagePicker
Objective-C
2
star
76

CoreYYWebImage

CoreYYWebImage
Objective-C
2
star
77

WeChatApp

微信小程序笔记
2
star
78

CorePopView

CorePopView
Objective-C
2
star
79

CorePaperButton

CorePaperButton
Objective-C
2
star
80

CorePopoverController

PopoverController
Objective-C
2
star
81

CoreWebViewController

CoreWebViewController
Objective-C
2
star
82

CoreTipView

CoreTipView
Objective-C
2
star
83

Pop

Pop动画引擎
Objective-C++
2
star
84

ShiDianPay

ShiDianPay
C
2
star
85

CoreKeyChain

KeyChain
Objective-C
2
star
86

YeahComponent

YeahComponent
Objective-C
1
star
87

ShiDianPlayerView

ShiDianPlayerView
Objective-C
1
star
88

CFPhotoBroswer

Powefull PhotoBroswer For Swift
Swift
1
star
89

MapView

MapView
Swift
1
star
90

CoreLBXScan

CoreLBXScan
Objective-C
1
star
91

CoreJHAnim

CoreJHAnim
Objective-C
1
star
92

CoreTextView

CoreTextView
Objective-C
1
star
93

NewcomerGuide

NewcomerGuide
Swift
1
star
94

CoreAsyncDisplayKit

CoreAsyncDisplayKit
Objective-C++
1
star
95

CoreMorphingLabel

仿iOS8的Label
Objective-C
1
star
96

CoreIV

CoreIV
Objective-C
1
star
97

ShiDianUM

ShiDianUM
Objective-C
1
star
98

ShiDianWebViewController

Objective-C
1
star
99

CoreUMengMobClick

CoreUMengMobClick
Objective-C
1
star
100

ShiDianRefresh

ShiDianRefresh
Objective-C
1
star