国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

簡單好用的iOS導航欄封裝.runtime屬性控制實例代碼

2019-10-21 18:39:23
字體:
來源:轉載
供稿:網友

前言

本文主要給大家介紹一個不錯的導航欄控制工具,可以大大的簡化代碼,并保留系統特性,不用自定義導航欄,不用繼承base。

下面話不多說了,來一起看看詳細的介紹吧

UIViewController+YINNav

效果

iOS,導航欄,封裝,.runtime,代碼

@interface UIViewController (YINNav)/** 控制屏幕方向  在appdelegate 實現 - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{  return [[[NSUserDefaults standardUserDefaults] objectForKey:@"orientation"] integerValue]; } */@property(nonatomic,assign)UIInterfaceOrientationMask y_screenOrientation;/** 上級控制器 可設置 手勢返回和pop的時候生效 */@property (nonatomic) UIViewController *y_popController;/** 是否啟用大標題模式 僅支持iOS11 默認為NO 。 */@property(nonatomic,assign)BOOL  y_largeTitleMode;/** 隱藏nav橫線 */@property(nonatomic,assign)BOOL  y_navLineHidden;/** nav橫線 */@property(nonatomic,strong)UIView  *y_navLine;/** 字體顏色 默認為[UIColor blackColor] */@property (nonatomic , strong) UIColor *y_navBarTextColor;/** 背景顏色 默認為[UIColor whiteColor] */@property (nonatomic , strong) UIColor *y_navBarBgColor;/** 背景圖 如果設置了背景圖 背景色無效 */@property (nonatomic , strong) UIImage *y_navBarBgImg;/** 設置對應的y_navBarAlpha透明度 */@property (nonatomic , assign) CGFloat y_navBarAlpha;/** navagationbar是否隱藏 默認為不隱藏navagationbar */@property (nonatomic , assign) BOOL y_navBarHidden;@end

看下與系統方法的對比

在我們使用系統api開發時。常規的,如果只有其中幾個頁面導航欄樣式不同,局部設置必須遵循一個原則:"進入頁面時修改,離開頁面時還原”。

比如我們進入一個頁面,需要設置當前導航欄的背景色為灰色,使用如下方法:

//進入頁面時設置顏色:灰色- (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController.navigationBar setBarTintColor:[UIColor grayColor]];}//離開頁面時還原為全局設置:橙色- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [self.navigationController.navigationBar setBarTintColor:[UIColor orangeColor]];}

使用UIViewController+YINNav的代碼:

- (void)viewDidLoad { [super viewDidLoad]; self.y_navBarBgColor = [UIColor orangeColor];}

當頁面返回時自動設置導航欄為即將顯示的controller配置。

透明度漸變效果

- (void)viewDidLoad { [super viewDidLoad]; self.y_navBarAlpha = 0.999;//如果有漸變 不能設為1 否則會頁面會從導航欄下面開始布局。 self.y_navBarBgColor = [UIColor orangeColor];}- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ self.y_navBarAlpha = 0.999-(scrollView.contentOffset.y/400.f);}

設置導航欄背景顏色

- (void)viewDidLoad { [super viewDidLoad]; self.y_navBarBgColor = [UIColor orangeColor];}

設置導航欄背景圖

- (void)viewDidLoad { [super viewDidLoad]; //權重高于背景色 self.y_navBarBgImg = [UIImage imageNamed:@"app2"];}

設置導航欄大標題

- (void)viewDidLoad { [super viewDidLoad]; self.y_largeTitleMode = YES;}

設置導航欄隱藏

- (void)viewDidLoad { [super viewDidLoad]; self.y_navBarHidden = YES;}

設置導航欄細線

- (void)viewDidLoad { [super viewDidLoad]; self. y_navLineHidden = YES;}

代碼控制返回頁面

- (void)viewDidLoad { [super viewDidLoad]; //傳一個controller對象 可以是navgationcontroller 棧內的對象 self.y_popController = [[YINNavAlphaViewController alloc] init];}

設置頁面方向

- (void)viewDidLoad { [super viewDidLoad]; self. y_screenOrientation = UIInterfaceOrientationMaskLandscapeRight;}

代碼地址

https://github.com/wangyin1/YINNavgationDemo

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 明光市| 安溪县| 蓬溪县| 浮梁县| 锡林浩特市| 宣城市| 金平| 南平市| 舒城县| 拉孜县| 高阳县| 含山县| 寿阳县| 霍城县| 平原县| 衡东县| 东阿县| 乌兰浩特市| 乐至县| 元阳县| 娄烦县| 鹤峰县| 教育| 夹江县| 和顺县| 西丰县| 商丘市| 开远市| 温州市| 揭西县| 泾阳县| 鹰潭市| 金门县| 长治市| 安岳县| 广安市| 温泉县| 同仁县| 乐亭县| 平定县| 凤阳县|