iOS 導航欄背景顏色完全透明及漸變
閒來無事,看到QQ導航透明,上拉透明度遞增直至1。
1.導航欄透明
首先試了[self.navigationController.navigationBar setAlpha:0];這樣導航及item都消失了,pass。
百度一下,就兩句程式碼
//設定背景圖為空
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:0];
//導航條黑線問題
[self.navigationController.navigationBar setShadowImage:[UIImage new]];
2.導航欄上拉透明度遞增
思路:建立一個全域性view遮蓋住navigationBar,也就是我們要操作這個view的透明度達到類似效果。介面關閉恢復導航初始設定
坑:這個全域性view的userInteractionEnabled使用者互動效果要關閉,否則在透明度為1的時候會遮蓋item而影響操作
alphaView = [[UIView alloc]initWithFrame:CGRectMake(0, -20, self.view.bounds.size.width, 64)];
alphaView.alpha = 0;
alphaView.userInteractionEnabled = NO;
alphaView.backgroundColor = [UIColor yellowColor];
[self.navigationController.navigationBar insertSubview:alphaView atIndex:0];
然後再scrollViewDidScroll裡面判斷是上拉還是下拉,當上拉偏移64的時候設定透明度為1,程式碼如下
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat offset = scrollView.contentOffset.y;
[UIView animateWithDuration:0.1 animations:^{
if (offset>0) {
alphaView.alpha = 1;
}else if(offset>-64&&offset<0){
alphaView.alpha = (64+offset)/64.0;
}else{
alphaView.alpha = 0;
}
}];
NSLog(@"======>%f_alpha=%f",offset,alphaView.alpha);
}
為了不影響其他導航,頁面消失時恢復導航初始設定
-(void)viewWillDisappear:(BOOL)animated{
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:0];
[self.navigationController.navigationBar setShadowImage:nil];
[alphaView removeFromSuperview];
}
如果你的才華撐不起你的野心,就靜下心來學習學習。
相關文章
- iOS 導航欄顏色透明度漸變iOS
- 簡易的iOS導航欄顏色漸變方案iOS
- iOS 背景圖層的顏色漸變效果iOS
- css3背景顏色漸變CSSS3
- iOS 超Easy實現 漸變導航欄iOS
- javascript網頁背景顏色漸變效果JavaScript網頁
- css樣式背景顏色漸變效果CSS
- iOS CAGradientLayer顏色漸變iOS
- 滑鼠懸浮背景變色導航選單
- js實現點選導航欄使當前背景變色程式碼JS
- 更改NavMenu 導航選單啟用時的背景顏色
- iOS UISearchBar 修改背景顏色iOSUI
- 直播軟體搭建,修改狀態列、導航條顏色及文字顏色
- iOS UIView漸變色iOSUIView
- 相容低版本IE瀏覽器的背景顏色漸變效果瀏覽器
- iOS 一行程式碼實現呼叫系統相機與相簿,可配置導航欄背景與字型顏色iOS行程
- iOS兩種顏色的線性漸變 --DDGBannerScrollViewiOSView
- CSS 顏色漸變的程式碼.CSS
- iOS 顏色製作背景圖片iOS
- JavaScript 背景顏色隨機變化JavaScript隨機
- iOS CAGradientLayer漸變色iOS
- Android 顏色漸變 屬性動畫Android動畫
- CSS--border邊框顏色漸變CSS
- Android的標題欄,狀態列圖示文字顏色及背景動態變化Android
- 短視訊直播原始碼,實現頂部導航欄背景圖片漸隱漸現效果原始碼
- iOS button背景顏色狀態設定iOS
- Android仿IOS上拉下拉彈性效果,同時利用顏色漸變,設定上拉下拉背景顏色不一致效果AndroidiOS
- iOS 導航欄的控制iOS
- 直播系統搭建,設定透明背景(去掉蒙層)狀態列顏色不改變
- Flutter改變狀態列字型、狀態列背景顏色、Appbar背景顏色的方式FlutterAPP
- 利用CAGradientLayer自定義顏色漸變viewView
- R語言colorRampPalette函式-建立顏色梯度(漸變色)R語言函式梯度
- IOS設定狀態列的背景顏色iOS
- 使用 Promise 迴圈改變 div 背景顏色Promise
- iOS專案開發實戰——製作View的顏色漸變動畫iOSView動畫
- 導航欄背景切換程式碼例項
- css文字顏色漸變的3種實現CSS
- 自定義View之顏色漸變折線圖View