你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS設置父視圖通明度而不影響子視圖

iOS設置父視圖通明度而不影響子視圖

編輯:IOS開發綜合

第一種方案:
明天接到項目需求,要求界面是通明的UIView上的視圖是通明的,但不影響子視圖上的視圖。
UIView *blackV = [[UIView alloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HIGHT)];  
blackV.backgroundColor = [UIColor colorWithRed:122/255.0 green:123/255.0 blue:234/255.0 alpha:0.7];  
[self.view addSubView: blackV]
第二種方案:
在IOS8後,蘋果開放了不少創立特效的接口,其中包括創立毛玻璃的接口。
        UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
        UIVisualEffectView *effectview = [[UIVisualEffectView alloc] initWithEffect:blur];
        effectview.frame = CGRectMake(0, 0, DEF_SCREEN_WIDTH, DEF_SCREEN_WIDTH + 30);
        effectview.contentView.backgroundColor = [UIColor greenColor];
        
        if (IOS8) {
            [self.view addSubview:self.effectview];
            self.backgroundColor = RGB_COLOR(80, 80, 80);
            self.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"princess"]];
        }else{
            self.backgroundColor = RGBA_COLOR(20, 20, 20, .7);
            self.backgroundColor = [UIColor whiteColor];
        }

這段代碼是在以後視圖控制器上添加了一個UIImageView作為背景圖


另外,盡量防止將UIVisualEffectView對象的alpha值設置為小於1.0的值,由於創立半通明的視圖會招致零碎在離屏渲染時去對UIVisualEffectView對象及一切的相關的子視圖做混合操作。這不但耗費CPU/GPU,也能夠會招致許多效果顯示不正確或許基本不顯示。 第三種方案:
UIViewController 推出另外一個半通明的UIViewController
這裡經過UIView 也是可以完成的,只是代碼曾經寫好,就嘗試了下推出半通明UIViewController的狀況
視圖1(ViewController1)中添加以下代碼
ViewController2 *lagerPicVC = [[ViewController2 alloc]init];
self.modalPresentationStyle = UIModalPresentationCurrentContext;//關鍵語句,必需有
[self presentViewController:lagerPicVC animated:YES completion:nil];
[self.view setBackgroundColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.868f]];

視圖2(ViewController2)中設置背景通明度

【iOS設置父視圖通明度而不影響子視圖】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved