91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS導航欄封裝.runtime屬性的示例分析

發布時間:2021-07-22 11:16:59 來源:億速云 閱讀:127 作者:小新 欄目:移動開發

小編給大家分享一下iOS導航欄封裝.runtime屬性的示例分析,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

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;
}

看完了這篇文章,相信你對“iOS導航欄封裝.runtime屬性的示例分析”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ios
AI

巴楚县| 通许县| 贵南县| 平湖市| 泸定县| 鄂尔多斯市| 崇文区| 木里| 望城县| 云和县| 明星| 克什克腾旗| 土默特左旗| 龙口市| 镇安县| 博客| 天台县| 中方县| 远安县| 台山市| 临潭县| 灯塔市| 靖江市| 宝清县| 新巴尔虎右旗| 巫山县| 从江县| 海口市| 蕲春县| 蒙阴县| 抚顺县| 镇安县| 都昌县| 大邑县| 南开区| 微山县| 麻江县| 永和县| 德安县| 沙雅县| 北宁市|